Bashでは中括弧の拡張に整数変数を使用できますか?

Bashでは中括弧の拡張に整数変数を使用できますか?

次のbashスクリプトがあります。

#!/bin/bash

upperlim=10

for i in {0..10}
do
echo $i
done

for i in {0..$upperlim}
do
echo $i
done

最初のforループ(いいえupperlimループ制御の変数)はうまく機能しますが、2番目のforループ(そしてループ制御の変数upperlim)はそうではありません。 2番目のforループが正しく機能するように変更する方法はありますか?時間をいただきありがとうございます。

ベストアンサー1

その理由はbashのイベントシーケンスによるものです。支柱の拡張が発生します。今後変数が展開されます。目標を達成するには、Cスタイルforループを使用する必要があります。

upperlim=10

for ((i=0; i<=upperlim; i++)); do
   echo "$i"
done

おすすめ記事