はじめに
続行
ステートメントは、スクリプトループのフローを変更する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
を使用した条件チェックを示します 声明。変数i
9
に等しい 、プログラムは行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
スクリプトは次の要素で構成されています:
-
PS3
3行目は、select
の表示メッセージです。 ループ。 - 5行目 ループ条件を定義し、
1
の番号を一覧表示します10
へ 。変数i
ユーザー入力を保存します。 - 7行目 選択をエコーします。
- 8行目 チェックを実行します。ユーザー入力値が
9
の場合 、プログラムはコンソールにメッセージを出力し、select
を続行します 次の反復でループします。
スクリプトを実行し、さまざまな値をテストして出力を確認します。
プログラムを終了するには、 CTRLを押します。 + C またはbreakステートメントを追加します。