シェルスクリプトで until ループを使用する方法
bash では、for、while、およびuntilが 3 つのループ構造です。各ループは構文的にも機能的にも異なりますが、その目的は、特定の式が評価されるときにコードのブロックを反復処理することです。
Until ループは、式が false と評価されるまでコード ブロックを実行するために使用されます。これは while ループのまったく逆です。 While ループは式が true の間コード ブロックを実行し、until ループはその逆を実行します。
until [ expression ]
do
code block
...
...
done
構文を詳しく見てみましょう。
- ループを開始するには、until キーワードの後に一重または二重中括弧内の式を使用する必要があります。
- コード ブロックの実行を開始するまで、式は false として評価される必要があります。
- 実際のコード ブロックは do と Done の間に配置されます。
この短い記事では、次の例を使用して、シェル スクリプトで until ループを使用する方法を学びます。
スクリプトで無限ループを作成する
式としてfalseステートメントを使用して無限ループを作成できます。無限ループをシミュレートしようとするときは、 スクリプトを定期的に渡すスリープを使用してみてください。
count=0
until false
do
echo "Counter = $count"
((count++))
sleep 2
done
単一行ステートメントの作成
単一行のループ ステートメントを作成できます。以下のコードを見てください。これは最初の無限ループの例と同じですが、1 行で構成されています。ここでは、セミコロン (;)
を使用して各ステートメントを終了する必要があります。
until false; do echo "Counter = $count"; ((count++)); sleep 2; done
Break および continue ステートメントを使用してフローを変更する
while ループ内で Break ステートメントと continue ステートメントを使用できます。 break ステートメントはループを終了し、次のステートメントに制御を渡します。一方、 continue ステートメントは現在の反復をスキップして、ループ内の次の反復を開始します。
同じ無限ループの例を使用しています。ここで、カウントが 5 に等しい場合、Continue ステートメントはループ本体の残りの部分をスキップして次の反復にジャンプします。同様に、カウントが 10 以上になるとループは中断されます。
count=0
until false
do
((count++))
if [[ $count -eq 5 ]]
then
continue
elif [[ $count -ge 10 ]]
then
break
fi
echo "Counter = $count"
done
この記事はここまでです。近いうちに別の興味深い記事を「それまで」お届けしますので、読み続けてサポートを続けてください。