У меня есть скрипт, который манипулирует данными, создает аргументы и отправляет их во второй скрипт. Один из аргументов содержит пробел.Как передать аргумент с пространством от скрипта bash к скрипту bash?
script1.sh:
args=()
args+=("A")
args+=("1 2")
args+=("B")
. script2.sh ${args[@]}
script2.sh:
for f in "[email protected]"
do
echo f=$f
done
Я хотел бы получить "1 2"
в качестве единственного аргумента, но получить их по отдельности:
f=A
f=1
f=2
f=B
I попробовал также преобразовать входные данные в script2 в список in=([email protected])
и итерации по нему usin g for f in ${in[@]}
, но получил тот же результат.
Таким образом, проблема может быть в одном из следующих: создание списка аргументов; передача встроенного списка; разбор входных данных; или итерации по входу.
Как передать аргумент с пространством от скрипта bash к сценарию bash? Спасибо.
* Я использую git-bash для Windows.
Комбинация ' "$ {арг [@]}"' с 'для F в "$ @"' сделал трюк. Благодарю. –
Только для записи 'for f; do' - это то же самое, что 'for f в" $ @ "; do'. –