次のように、完全なコマンド文字列を使用して変数を設定することはできません。
A="/bin/ps wwwaux"
for a in $A
do
echo "$a"
done
どういうわけかソリッド文字列の代わりに配列を割り当てます。
私の環境:
GNU/Linux, GNU bash, version 3.2.51(1)-release (x86_64-suse-linux-gnu)
答え1
forループにはリストが必要です。
for a in $A; do
echo "$a"
done
拡張:
for a in /bin/ps wwwaux; do
echo "$a"
done
順番に印刷されます。ループは2回実行されます。二つ議論。出力は次のとおりです。
/bin/ps
wwwaux
代わりに引用符を使用してください。
for a in "$A"; do
echo "$a"
done
これは次のように拡張されます。
for a in "/bin/ps wwwaux"; do
echo "$a"
done
そのまま一度繰り返す一つ議論。出力は次のとおりです。
/bin/ps wwwaux
答え2
for f in "$A"
do
echo $f
done
あなたの課題はすでにあなたが望むことをしています - "for"ループはあなたが望ましくない方法でそれを破ります。