はじめに
Bashスクリプトでは、 break
ステートメントは、ループステートメント内の制御を提供するのに役立ちます。終了条件まで待つ代わりに、 break
ステートメントは、終了条件が発生する前にループを終了するのに役立ちます。
制御ループステートメント( break
続行)if elif elseなどの条件ステートメントと論理的に組み合わせて、ループ内に特別な状況を作成します。
このチュートリアルでは、 break
の使用方法を説明します Bashスクリプトループで効率的にステートメントを作成します。

前提条件
- macOSまたはLinuxを実行しているマシン。
- Bashスクリプトの基本(スクリプトの作成や実行など)
- nanoなどのBashスクリプトの例を作成するためのテキストエディタ。
bashbreakステートメント
ブレーク
ステートメントは、現在のループの反復を終了し、ループを終了します。条件と組み合わせると、 break
エンドケースが発生する前にループを終了する方法を提供するのに役立ちます。

バッシュbreak
ステートメントは常にループに適用されます。
構文は次のとおりです。
break <integer>
整数値はオプションであり、 1
デフォルトでは。数値は、ブレーク
の深さを定義します ネストされたループの場合。したがって、ネストされたforループから抜け出すには、 break 2
を使用します。 。
バッシュブレイクの例
以下の例は、 break
を使用してさまざまなループタイプを終了する方法を示しています。 声明。例は次のとおりです。
- 標準の
while
、for、およびuntil
ループします。 選択
コマンド。
以下の各Bashスクリプトの例には、説明が付いています。
whileループからの脱却
break
を使用します while
を終了するステートメント 特定の条件が実現したときにループします。次のスクリプトはbreak
を使用しています while
内 ループ:
#!/bin/bash
i=0
while [[ $i -lt 11 ]]
do
if [[ "$i" == '2' ]]
then
echo "Number $i!"
break
fi
echo $i
((i++))
done
echo "Done!"

スクリプトの各行は次のことを行います:
- 3行目 変数
i
を定義および設定します0
へ 。 - 5行目
while
を開始します ループ。終了条件は、変数が11未満の場合です($ i -lt 11
。 - 7行目
if
を使用してチェックを実行します 声明。変数が2に等しい場合("$ i" ==2
)、プログラムはwhile
を終了します Bashを使用してループするbreak
10行目のステートメント 。その場合、コードは16行目にジャンプします 。変数が異なる数値の場合、スクリプトは12行目で期待どおりに続行されます 。
スクリプトを実行して結果を確認します。

プログラムは、 2
までの番号を一覧表示します スクリプトを終了します。
breakInsideforループの使用
for
ループは変数を自動的にインクリメントします。条件ステートメントを追加してfor
を終了するには 早めにループし、 break
を使用します 声明。次のコードは、 break
の使用例を示しています。 for
内 ループ:
#!/bin/bash
for i in {1..10}
do
if [[ $i == '2' ]]
then
echo "Number $i!"
break
fi
echo "$i"
done
echo "Done!"

整数値が2に等しい場合( $ i =='2'
)、プログラムはメッセージを出力し、 for
を終了します break
のおかげでループします ステートメント。

その結果、スクリプトを実行すると、変数 i
のときにプログラムが終了します。 2に到達し、コードの最後の行にジャンプします。
までループから抜ける
バッシュまで
loopは、3つの基本的なループ構造の1つです。 break
を追加します プログラムフローを制御し、別の条件下でループを終了するステートメント。
以下はサンプルプログラムです:
#!/bin/bash
i=0
until [[ $i -gt 10 ]]
do
if [[ $i -eq 2 ]]
then
echo "Number $i!"
break
fi
echo $i
((i++))
done
echo "Done!"

まで
ループに終了条件が含まれています( $ i -gt 10
)、ループ本体に別の条件が含まれています( $ i -eq 2
)。 2番目の条件は最初の条件の前に発生するため、プログラムは if
に入ります。 ステートメントの本文。ループを終了するためのBashbreakステートメントが含まれています。

スクリプトを実行すると、変数 i
のときにプログラムが終了することがわかります。 値2
に到達します 。
選択したループ内でブレークを使用する
選択コード>
コマンドはメニューを作成し、プライマリループ構造の1つではありませんが、無限ループのように動作します。 select
を終了するには エレガントなステートメントで、プログラムが終了するケースを作成し、 break
を使用します ループを離れます。
以下のコードは、 select
を使用したテキストによる数字推測ゲームを示しています。 ステートメント:
#!/bin/bash/
PS3="Guess my favorite number: "
select i in {1..10}
do
echo "Selected number: $i"
if [[ $REPLY -eq 2 ]]
then
echo "Correct! $i is my favorite. Thanks for playing!"
break
fi
echo "Not my favorite. Try again!"
done

コードは次のことを行います:
- 3行目 指示メッセージを表示します。
選択コード>
ステートメントは、すべてのオプションをリストした後、およびそれぞれの誤った推測の後に、このメッセージを出力します。 - 5行目
select
を開始します ステートメントであり、オプションを数値として定義します1
10
へ 。 - 8行目 選択した数が
2
に等しいかどうかを確認します 、これは正しい推測です。チェックに合格すると、Bash breakステートメントはループを終了し、ゲームを終了するのに役立ちます。
スクリプトを実行して、数字を推測するゲームをプレイします。

結果を確認するには、さまざまな値を入力してください。
スクリプトをさらに開発するには、 elif
を追加してみてください 範囲外の入力をチェックするステートメント、またはさまざまな入力状況を検討するためのcaseステートメントに変更するステートメント。