Мне нужно изменить существующий сценарий ksh, который просматривает аргументы командной строки, используя 'shift', и поэтому очищает $ @, но теперь хочу передать исходные аргументы второму сценарию впоследствии.
В случае mainline я могу сделать это, скопировав $ @ в переменную и передав его во второй скрипт, но я не могу заставить его работать для указанных в командной строке аргументов командной строки.
Если у меня есть скрипт под названием «принтер», как показано ниже:
#!/bin/ksh
INPUT=$@
echo "Printing args"
until [[ $# -eq 0 ]];do
echo $1
shift
done
./printer2 $INPUT
и printer2, как показано ниже:
#!/bin/ksh
echo "Printing second args"
until [[ $# -eq 0 ]];do
echo $1
shift
done
Я бы хотел получить вывод
./printer first second "third forth"
будет:
Printing args
first
second
third forth
Printing second args
first
second
third forth
Я пробовал различные комбинации кавычек вокруг переменных (как в присваивании $ INPUT, так и при передаче его в printer2), но не могу понять это. Кто-нибудь может помочь?