私はBASHで働いていて、今はばかげた瞬間を過ごしています。非常に基本的な算術式を使用する必要があるというプロジェクトに取り組んでいますが、変数が更新されていないことが問題の多くであることに気づきました。そこで、特定の数に達するまで、whileループを使用して変数を別の変数でインクリメントする基本的なアルゴリズムをまとめました。
counter=1
counter2=0
while [[ counter2 < 10 ]]; do
counter2=$(($counter2+$counter))
echo $counter
echo $counter2
done
スクリプトを実行します。何もしません。キックの<
ためだけにを設定すると、次の繰り返し出力で無限ループが発生します。>
1
0
1
0
私がそれを止めるまで永遠にそして永遠に。したがって、変数が変更されていないことは明らかです。なんで?それは私が見落としている愚かな何かでなければならないので、私はそのようなばかみたいに感じます。そして、なぜ、私が持っているとき<
、それも無限ループではないのですか?なぜそれは何も印刷しないのですか?counter2
が常に10未満の場合、なぜそれは永遠に続くのではないのですか?
よろしくお願いします。
編集:まあ、私はチェックがであるときにそれが何も出力しなかった理由を理解してい<
ます...私は単にの実際の値を取得する$counter2
代わりに使用する必要がありました。しかし、今では出力するだけです。counter2
counter2
1
2
そして、それはそれです...私はそのようなderpのように感じます。