このwhileループインスタンスで「続き」が機能しないのはなぜですか?

このwhileループインスタンスで「続き」が機能しないのはなぜですか?

Unixを学び、屋根を練習しようとしています。文が発生した後に出力が一時停止される理由を誰かが説明できますかcontinue

その後、出力は一時停止され、Count : 4+で終了します。CtrlC

パスワード:

COUNT=0

while [ $COUNT -lt 10 ]
do
  if [ $COUNT = 5 ]
  then
     continue
  fi
  echo "Count : $COUNT"
  ((COUNT++))
done

echo "while loop finished"
exit 0

ベストアンサー1

その理由はとても簡単です。あなたのcontinueステートメントは、シェルに次のループ反復にすぐにジャンプするように指示します。

残念ながら、この((COUNT++))部分はスキップされます。つまり、COUNT5に達すると絶対に増加せず、条件が満たされwhileず、その時点から無限ループに陥ります。

COUNT@steeldriverが想定しているように、ofでループを中断したい場合は、5このbreakステートメントが正しい選択になります。

全体的にシェルスクリプトについてもっと学びたいのであれば、以下をお勧めします。GreyCat&Lhunathのバッシュガイド。またはスクリプトを実行してshellcheck(多くのオペレーティングシステムリポジトリからスタンドアロンプ​​ログラムとしても利用可能です)は、構文エラーなどを識別するのに役立ちます。

おすすめ記事