次の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