複数のユーザー入力を繰り返そうとすると、予期しない出力が表示されるのはなぜですか? [コピー]

複数のユーザー入力を繰り返そうとすると、予期しない出力が表示されるのはなぜですか? [コピー]

私は次のbashシェルスクリプトを書いています。

#!/bin/bash

declare -i N
read N
for i in {1..$N}
do
  echo "Number: $i"
done

declare -i N(私は整数を作ると信じていますN

ただし、このコマンドを実行すると、次の出力が表示されます。

>vim new.sh
>chmod +x passgen.sh
>./passgen.sh
15
Number: {1..15}

ここでは、ユーザーから制限を取得してからループを実行したいと思います。

ベストアンサー1

からman bash

拡張順序は、中かっこ拡張、パラメータと変数拡張、算術拡張、コマンドの置換(左から右へ)です。

ご覧のとおり、中かっこ拡張が最初に出てきたので、明らかにあなたの質問からスキップしました。私は別のループを使用します。

おすすめ記事