変数に一連の引数を作成し、それをスクリプトに渡そうとしましたが、予想とは異なる動作になりました。
test.sh
#!/bin/bash
for var in "$@"; do
echo "$var"
done
入力
usr@host$ ARGS="-a \"arg one\" -b \"arg two\""
usr@host$ ./test.sh $ARGS
出力
-a
"arg
one"
-b
"arg
two"
期待される
-a
arg one
-b
arg two
引用符で囲まれた引数をスクリプトに直接渡すと、機能することに注意してください。eval を使用してこれを回避することもできますが、最初のアプローチが失敗した理由を理解したいと思いました。
回避策
ARGS="./test.sh -a "arg one" -b "arg two""
eval $ARGS