В bash можно избежать аргументов, содержащих пробелы.
foo "a string"
Это также работает для аргументов команды или функции:
bar() {
foo "[email protected]"
}
bar "a string"
До сих пор так хорошо, но что, если я хочу манипулировать аргументами до вызова foo
?
Это не работает:
bar() {
for arg in "[email protected]"
do
args="$args \"prefix $arg\""
done
# Everything looks good ...
echo $args
# ... but it isn't.
foo $args
# foo "$args" would just be silly
}
bar a b c
Итак, как вы создаете списки аргументов, когда аргументы содержат пробелы?