bash では、空白を含む引数をエスケープできます。
foo "a string"
これは、コマンドまたは関数への引数にも機能します。
bar() {
foo "$@"
}
bar "a string"
ここまでは順調ですが、 を呼び出す前に引数を操作したい場合はどうすればよいfoo
でしょうか?
これは動作しません:
bar() {
for arg in "$@"
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
では、引数に空白が含まれている場合、どのように引数リストを作成するのでしょうか?