変数の値を角かっこ拡張シーケンス値として渡すには?

変数の値を角かっこ拡張シーケンス値として渡すには?

コードブロックは具体的には次のとおりです。

for n in {1..$PASSEDARGS}; do
      printf "%s\n" "$n"
done

次のコードブロックは機能しませんが、代わりに{1..3}3がスクリプトに渡された引数の数である値を印刷します。

プログラム印刷パラメータを作成するには$n

答え1

BashのCと同様のforループ構文を使用してください。

for (( i = 1; i <= PASSEDARGS; ++i )); do
  printf "%s\n" "$i"
done

答え2

for n in $(seq $#); do
      printf "%s\n" "$n"
      eval echo argument at $n: \$$n
done

関連情報