Эхо-аргументы скрипта из функции

Мне нужно получить аргументы скрипта внутри функции с аргументами.

./myscript 1 2 3

function_name () {
   if [ $1 == 3 ]; then
        # I need the $1 in the following echo to be the script argument, not the function argument
        echo $1 $2 $3
   fi
}

function_name $#
1
задан 24 June 2014 в 12:55

1 ответ

Это довольно интересно. Проблемой является объем функции, является переопределяющим тот из сценария. Я не вижу простой путь вокруг этого.

Однако можно просто провести переменные как аргументы (в функцию):

function_name () {
   [[ $# == 3 ]] && echo $1 $2 $3
}

function_name $@

Или Вы могли:

  • Передача $# $@, проверьте $1, и echo $2 $3 $4
  • Передача $# $@, проверьте $1, shift и затем echo $1 $2 $3
  • Хранилище $@ как переменная уровня сценария и получите доступ к нему из функции
3
ответ дан 24 June 2014 в 12:55

Другие вопросы по тегам:

Похожие вопросы: