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++))
部分はスキップされます。つまり、COUNT
5に達すると絶対に増加せず、条件が満たされwhile
ず、その時点から無限ループに陥ります。
COUNT
@steeldriverが想定しているように、ofでループを中断したい場合は、5
このbreak
ステートメントが正しい選択になります。
全体的にシェルスクリプトについてもっと学びたいのであれば、以下をお勧めします。GreyCat&Lhunathのバッシュガイド。またはスクリプトを実行してshellcheck
(多くのオペレーティングシステムリポジトリからスタンドアロンプログラムとしても利用可能です)は、構文エラーなどを識別するのに役立ちます。