for ループ構文

for ループ構文

なぜ

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か?2345

その理由は、実行中にジョブが評価される順序に関連しています。このコマンドを見てください

x="${i}" echo "$x"

これは何のためであるか。

  1. 変数をその値に置き換える
  2. 変数に一時値を割り当てるx
  3. 注文の実行

だからあなたは得ます

  1. x=1 echo ""(またはx=2 echo ""等)
  2. このコマンドの実行中は、x次の値に設定してください。1
  3. 注文の実行:echo ""

xこのコマンドは、値の割り当てとその値の印刷という2つのコマンドと考えることができます。ただし、シェル構文では、作成したコードが完全に合法であるため、シェルはそのような意図なしにコードを実行します。

おすすめ記事