なぜ
for i in {1..5}; do x="${i}" echo "$x"; done
出力なし
1
2
3
4
5
?
これを行う正しい方法は何ですか?
(テスト済みfor i in {1..5}; do x=$(i) echo "$x"; done
-bash: i: コマンドが見つかりません
他人)
ベストアンサー1
要求どおりに質問に答えてください。
なぜ、、、、、を
for i in {1..5}; do x="${i}" echo "$x"; done
出力しないのです1
か?2
3
4
5
その理由は、実行中にジョブが評価される順序に関連しています。このコマンドを見てください
x="${i}" echo "$x"
これは何のためであるか。
- 変数をその値に置き換える
- 変数に一時値を割り当てる
x
- 注文の実行
だからあなたは得ます
x=1 echo ""
(またはx=2 echo ""
等)- このコマンドの実行中は、
x
次の値に設定してください。1
- 注文の実行:
echo ""
x
このコマンドは、値の割り当てとその値の印刷という2つのコマンドと考えることができます。ただし、シェル構文では、作成したコードが完全に合法であるため、シェルはそのような意図なしにコードを実行します。