はじめに
続行 ステートメントは、スクリプトループのフローを変更するBashビルトインです。この概念はBashに固有のものではなく、他のプログラミング言語で使用されています。
Bashがどのように続行するかを理解するための最良の方法 ステートメントの動作は、実践的な例によるものです。
このチュートリアルは、Bashの続行の使用方法を示しています Bashスクリプトのステートメント。
前提条件
- LinuxまたはmacOSを実行しているマシン。
- 例のテキストエディタ。
- Bashスクリプトの基本的な知識。
バッシュコンティニューステートメント
バッシュ続行 ステートメントは、ループまたはループステートメントで次の反復を再開します。
構文は次のとおりです。
continue <integer>
続行 ステートメントは、ループに適用された場合にのみ意味があります。整数値は、継続の深さを示します 声明。デフォルトでは、整数は 1です。 番号の記入は必須ではありません。数を増やして、外部ループステートメントを再開します。
続行を使用する ループ制御ステートメントとしてのステートメント。たとえば、続行 ステートメントは、特定の条件を満たすときに、ループ内の現在の反復を終了するのに役立ちます。ループの種類に応じて、プログラムは次の反復で再開するか、ループを再開します。
Bashの継続例
以下は、Bashスクリプトでcontinueステートメントを操作する例と説明です。
次のプライマリループ構造は、ステートメントがどのように機能するかを示しています。
- forループは、continueと組み合わせると、次の反復で続行されます。
- continueステートメントは、
whileを再起動します およびまでループします。
選択コード> コマンドは、プライマリループ構造ではありませんが、例にも表示されます。ステートメントはループとして機能し、続行 ステートメントは、どのループコマンドでも機能します。
Bashの使用forループを続行
続行を使用する forのフローを制御する場合の条件内のステートメント :
#!/bin/bash
for i in {1..10}
do
if [[ $i == '9' ]]
then
echo "Number $i!"
continue
fi
echo "$i"
done
echo "Done!"
コードは次のことを行います:
- 3行目
forを開始します ループ条件、変数iを繰り返します1から10へ 。 - 5行目
iをチェックします 価値。変数が9に等しい場合 、プログラムはメッセージをエコーし、次の反復でループを再開します(3行目 。 - 10行目 5行目の条件ステートメントの場合にのみ、数値をコンソールに出力します False 。
スクリプトを実行して結果を確認します。
出力は、すべての個別の番号をコンソールに出力します。 5行目の条件がTrueと評価されたとき ( $ i =='9' )、コンソールはメッセージをエコーします。
Bashを使用してネストされたループを続行
続行 ステートメントはネストされたループで機能します 同じように。たとえば、 continue 2を使用します 外側のループを再開するには:
#!/bin/bash
for i in {1..5}
do
for j in {1..5}
do
if [[ $i -eq $j ]]
then
echo "$i = $j"
continue 2
fi
echo "$i =/= $j"
done
done
echo "Done!"
プログラムは次のことを行います:
- 3行目 変数
iをインクリメントして、外側のループを開始します1から5へ 。 - 5行目 内部のforループを開始し、変数
jをインクリメントします1から5へiごとに 増分。 - 7行目 変数が
iかどうかをチェックします およびj等しい($ i -eq $ j)。そうである場合は、続行2ステートメントは、次の反復で外側のループを再開します。ただし、値が異なる場合、プログラムは期待どおりに続行されます。
スクリプトを実行して、プログラムの出力を確認します。
2つの値が等しくなるたびに、最初の数値が増加します。
Bashの使用whileループを続行
以下は、 continue を使用するBashスクリプトの例です。 whileのステートメント ループ:
#!/bin/bash
i=0
while [[ $i -lt 11 ]]
do
if [[ "$i" == '9' ]]
then
echo "Number $i!"
((i++))
continue
fi
echo $i
((i++))
done
各行は次のことを行います:
- 3行目 変数
iを定義します 値を0に設定します 。 - 5行目
whileを開始します ループ。終了条件は、iの場合です。11未満です 。 - 7行目
ifを使用した条件チェックを示します 声明。変数i9に等しい 、プログラムは行9-11に進みます 。他のすべての場合、コードは13行目にジャンプします 。 - 9〜11行目 コンソールにメッセージを出力し、
iをインクリメントします 、および続行ステートメントは5行目でループを再開します 。 - 13行目と14行目 変数
iを出力します コンソールに移動してインクリメントします。
出力を確認するには、ターミナルからスクリプトを実行します。
プログラムはすべての番号をコンソールに出力します。条件ステートメントとcontinueステートメントにより、番号 9に対して別のメッセージが出力されます。 。
Bashの使用untilループを続行
続行を組み合わせる までのステートメント ループし、特定の値のループ動作を変更するための条件を提供します。たとえば、次のスクリプトを試してください。
#!/bin/bash
i=0
until [[ $i -gt 10 ]]
do
if [[ $i -eq 9 ]]
then
echo "Number $i!"
((i++))
continue
fi
echo $i
((i++))
done
コードは変数をインクリメントし、値が 10に達するまでループします 。変数が9に等しい場合 、プログラムは別のメッセージを出力します。 続行 ステートメントはuntilを再起動します ループして通常どおり続行します。
Bashの使用選択ループを続行
選択コード> コマンドは、プライマリBashスクリプトループではないため、特定のケースです。このコマンドは、ユーザー入力を必要とするメニューを作成します。 続行を使用する ユーザーが選択した値に基づいて異なる出力を提供するステートメント。
例として、次のBashスクリプトを試してください。
#!/bin/bash
PS3="Choose a number: "
select i in {1..10}
do
echo "Selected number: $i"
if [[ $REPLY -eq 9 ]]
then
echo "Number $i!"
continue
fi
done
スクリプトは次の要素で構成されています:
-
PS33行目は、selectの表示メッセージです。 ループ。 - 5行目 ループ条件を定義し、
1の番号を一覧表示します10へ 。変数iユーザー入力を保存します。 - 7行目 選択をエコーします。
- 8行目 チェックを実行します。ユーザー入力値が
9の場合 、プログラムはコンソールにメッセージを出力し、selectを続行します 次の反復でループします。
スクリプトを実行し、さまざまな値をテストして出力を確認します。
プログラムを終了するには、 CTRLを押します。 + C またはbreakステートメントを追加します。