Мне нужно получить аргументы скрипта внутри функции с аргументами.
./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 $#
Это довольно интересно. Проблемой является объем функции, является переопределяющим тот из сценария. Я не вижу простой путь вокруг этого.
Однако можно просто провести переменные как аргументы (в функцию):
function_name () {
[[ $# == 3 ]] && echo $1 $2 $3
}
function_name $@
Или Вы могли:
$# $@
, проверьте $1
, и echo $2 $3 $4
$# $@
, проверьте $1
, shift
и затем echo $1 $2 $3
$@
как переменная уровня сценария и получите доступ к нему из функции