Bash

Bashのループのさまざまな種類とは?

Bashスクリプティングでは、ループは特定の条件が満たされるまでコードのブロックを繰り返し実行できる制御構造です。ループは反復的なタスクの自動化、データコレクションの処理、反復操作の実行に不可欠です。Bashで使用可能なさまざまな種類のループを理解することは、効率的で効果的なスクリプトを作成するために不可欠です。

Bashのループの種類とは?

Bashのループの種類

Forループ

forループは、Bashでシンプルかつ一般的に使用されるループです。値のリストまたは数値の範囲を反復処理できます。forループの構文は次のとおりです。

 for variable in list do commands done 
  • variable: リストまたは範囲を反復処理するために使用される変数。
  • list: 反復処理する値のリストまたは数値の範囲。
  • commands: ループの各反復で実行されるコマンド。

たとえば、次のforループは、果物のリストを反復処理して各果物を印刷します。

 fruits=(apple banana orange) for fruit in "${fruits[@]}" do echo $fruit done 

Whileループ

の

whileループは、指定された条件が真である限り、コードのブロックを繰り返し実行します。whileループの構文は次のとおりです。

 while condition do commands done 
  • condition: ループの実行を継続するかどうかを決定する条件。
  • commands: ループの各反復で実行されるコマンド。

たとえば、次のwhileループは、1から10までの数字を印刷し続けます。

 i=1 while [ $i -le 10 ] do echo $i ((i++)) done 

Untilループ

所有者テクノロジーのスタートアップ

untilループはwhileループに似ていますが、指定された条件が偽になるまでコードのブロックを繰り返し実行します。untilループの構文は次のとおりです。

 until condition do commands done 
  • condition: ループの実行を継続するかどうかを決定する条件。
  • commands: ループの各反復で実行されるコマンド。

たとえば、次のuntilループは、ユーザーが非数値を入力するまで1から10までの数字を印刷し続けます。

 read -p "Enter a number: " number until [[ $number =~ ^[0-9]+$ ]] do echo "Invalid input. Please enter a number." read -p "Enter a number: " number done echo "You entered $number." 

Do-Whileループ

do-whileループは、ループ条件を確認する前にコードのブロックを少なくとも1回実行するwhileループのバリエーションです。do-whileループの構文は次のとおりです。

 do commands done while condition 
  • commands: ループの各反復で実行されるコマンド。
  • condition: ループの実行を継続するかどうかを決定する条件。

たとえば、次のdo-whileループは、ユーザーが非数値を入力した場合でも、1から10までの数字を印刷し続けます。

 read -p "Enter a number: " number do echo $number ((number++)) done while [[ $number -le 10 ]] 

ネストされたループ

ネストされたループは、ループ内のループです。これにより、複雑な反復を実行し、複数のレベルを持つデータ構造を処理できます。ネストされたループは、さまざまな種類のループを組み合わせたり、同じ種類のループを複数回使用したりすることで作成できます。

たとえば、次のネストされたforループは、2次元の配列を反復処理して各要素を印刷します。

 array=( [0,0]=1 [0,1]=2 [0,2]=3 [1,0]=4 [1,1]=5 [1,2]=6 [2,0]=7 [2,1]=8 [2,2]=9 ) for ((i=0; i<3; i++)) do for ((j=0; j<3; j++)) do echo ${array[$i,$j]} done done 

ループ制御ステートメント

ループ制御ステートメントを使用すると、ループの流れを変更できます。Bashで最も一般的に使用される2つのループ制御ステートメントは、breakcontinueです。

Breakステートメント

breakステートメントは、ループを途中で終了するために使用されます。breakステートメントが検出されると、ループはすぐに終了し、実行はループに続くステートメントから続行されます。

たとえば、次のforループは、iの値が5に達すると、breakステートメントを使用してループを終了します。

 for ((i=0; i<10; i++)) do if [ $i -eq 5 ] then break fi echo $i done 

Continueステートメント

continueステートメントは、ループの現在の反復をスキップして次の反復を続行するために使用されます。continueステートメントが検出されると、現在の反復の残りのステートメントはスキップされ、ループは次の反復に進みます。

たとえば、次のwhileループは、continueステートメントを使用して偶数をスキップします。

 i=0 while [ $i -lt 10 ] do ((i++)) if [ $((i % 2)) -eq 0 ] then continue fi echo $i done 

ループは、反復的なタスクの自動化、データコレクションの処理、反復操作の実行を可能にする、Bashスクリプティングの不可欠な制御構造です。Bashで使用可能なさまざまな種類のループとその効果的な使用方法を理解することは、効率的で効果的なスクリプトを作成するために不可欠です。さらに、ループ制御ステートメントを使用すると、ループの流れを変更できるため、さらに汎用性が高まります。

Bashでループを使用することに習熟するには、さまざまなシナリオで練習して試してみる必要があります。ループを操作するほど、その動作を理解し、現実世界の問題を解決するために適用することができるようになります。

Thank you for the feedback

返信を残す