Наиболее переносимым способом для разных оболочек было бы присвоение аргументов сценария глобальным переменным.
ARG1="$1"
ARG2="$2"
echo "My arguments $ARG1 $ARG2"
Для большинства современных оболочек также существует ярлык (по крайней мере bash, zsh, k sh), которые поддерживают массивы. Имейте в виду, что строгие оболочки POSIX не имеют массивов, поэтому в них это не сработает. Вы можете присвоить массиву $@
и получить доступ к этому массиву вместо этого следующим образом:
ARGV=("$@")
# arguments in ARGV array will be shifted - $1 on index 0, $2 on index 1, etc..
echo "My arguments ${ARGV[0]} ${ARGV[1]}"
Наконец, если у вас все в порядке с непереносимым скриптом bash, вы можете использовать массив BASH_ARGV.
echo "My arguments ${BASH_ARGV[1]} ${BASH_ARGV[0]}"