Bash で Do-While ループをエミュレートする

Nilesh Katuwal 2023年1月30日
  1. Bash での do-while ループの基本構文
  2. Bash の break ステートメント
  3. Bash の continue ステートメント
Bash で Do-While ループをエミュレートする

ループはプログラミングの基本的な考え方であり、マルチタスクタスクで非常に役立ちます。forwhileuntil などの多数の関数を使用して、bash スクリプトをループさせることができます。

このレッスンでは、bash で do-while ループを使用する方法について説明します。

Bash での do-while ループの基本構文

do-while ループの基本的な構文は次のとおりです。

while [condition]
    do
        first command;
        second command;
        .
        .
        .
        nth command;
done

while ループのパラメーターは、任意のブール式にすることができます。条件が false と評価されない場合、ループは無限になります。

CTRL + Cを押して、無限ループを停止します。例を見てみましょう:

#!/bin/bash
x=0
while [ $x -le 4 ]
do
  echo "The value is $x"
  ((x++))
done

変数の現在の値が出力され、例の反復ごとに 1 ずつ増加します。$x 変数の初期値は 0 です。

上記のスクリプトは、4 行目に到達するまで実行されます。接尾辞 -le は、以下を示します。

出力:

The value is 0
The value is 1
The value is 2
The value is 3
The value is 4

Bash の break ステートメント

ループ内で break ステートメントを使用して、条件が満たされたときにループを終了します。

たとえば、ループは 9 回目の反復後に以下のスクリプトで終了します。ただし、break および if ステートメントを使用して、4 回目の反復でループを停止することができます。

#!/bin/bash
x=0
while [ $x -le 9 ]
do
  echo "The value is $x"
  ((x++))
 if [[ "$x" == '4' ]];
  then  
    break  
 fi
done

出力:

The value is 0
The value is 1
The value is 2
The value is 3

Bash の continue ステートメント

continue ステートメントは、現在のループの反復を終了し、プログラム制御を次の反復に移します。

例を見てみましょう。現在の反復項目が 3 に等しい場合、continue ステートメントにより、実行はループの開始に戻り、次の反復を続行します。

#!/bin/bash
x=0
while [ $x -le 5 ]
do
  ((x++))
 if [[ "$x" == '3' ]];
  then  
    continue  
 fi
 echo "The value is $x"
done

出力:

The value is 1
The value is 2
The value is 4
The value is 5
The value is 6

上記の出力で予想されたように、$x3 に等しい場合、反復をスキップして次の反復に進みました。