Bash で Do-While ループをエミュレートする
Nilesh Katuwal
2023年1月30日
ループはプログラミングの基本的な考え方であり、マルチタスクタスクで非常に役立ちます。for
、while
、until
などの多数の関数を使用して、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
上記の出力で予想されたように、$x
が 3
に等しい場合、反復をスキップして次の反復に進みました。