forループについて学んでいますが、bash
オンラインで次の例を見つけました。
for i in 1 2 3 4 5
do
echo $i
done
私は1 2 3 4 5
多くの「モノ」(数字、文字列、変数など)に置き換えました。
myVar="!!"
myVar2="Bye"
for i in 3 15 1 32 6 "Hello World $myVar" 'Hello World in single quotes' Hi $myVar2 $(ls)
do
echo $i
done
上記のコードでスクリプトを実行すると、期待どおりに機能します。しかし、これらすべての「材料」を一緒に混ぜることは何とか効果がありませんか?
答え1
ループに提供する引数のリストが有効な文字列(またはシェルによって拡張される可能性がある)であると仮定すると、つまり、すべてのシェル拡張の正しい構文を取得すると、実際に制限はなく、すべてが行われます。
引数リストが展開されると、bashはそれをループに供給し、ループ内のコードが実行されるようにします。
これは良い習慣ではなく、コードを理解するのが難しくなりますが、それ自体は「無効」ではありません。