BASH はコマンドライン言語であるため、プログラミング スキルを活用してターミナルでタスクを実行するための機能が豊富な経験が得られます。 BASH スクリプトでループと条件ステートメントを使用すると、反復的で難しい問題を簡単なプログラム的な方法で実行できます。この記事では、 for ループ BASH スクリプトで。
ユースケースと自動化しようとしている問題に応じて、ループを使用する方法がいくつかあります。
- 単純な For ループ
- 範囲ベースの for ループ
- ループの配列反復
- C スタイルの for ループ
- 無限forループ
単純な For ループ
for ループを実行するには、次の構文を記述します。
#!/bin/bash for n in a b c; do echo $n done>
- 最初の反復では、
n>は値 a を取り、スクリプトは a を出力します。 - 2 回目の反復では、
n>は値 b を取り、スクリプトは b を出力します。 - 3 回目の反復では、
n>は値 c を取り、スクリプトは c を出力します。

上記のコマンドは、指定された要素を反復処理します。 で キーワードを一つずつ。要素には、数値、文字列、またはその他の形式のデータを使用できます。
範囲ベースの for ループ
範囲ベースの for ループを使用できます。このタイプのループでは、ステートメント内で開始、停止、および反復ごとに増加する番号 (オプション) を指定できます。これを行うには 2 つの方法があります。つまり、増分/減分値を指定する方法と、デフォルトで 1 ずつ増分する方法です。構文は次のようになります。
企業対企業
#!/bin/bash for n in {1..5}; do echo $n done> 
上記のコードでは、{} を使用して数値の範囲を指定します。中括弧内に開始点を指定し、その後に 2 つのドットと終点を指定します。デフォルトでは、1 ずつ増加します。したがって、1 から 5 までの 5 つの数字を出力します。
#!/bin/bash for n in {1..5..2}; do echo $n done> 
Java 文字列形式が長い
ここでは、中括弧で示されているように、ループが 2 単位ずつ増加していることがわかります。したがって、これにより数値の操作が非常に簡単かつ便利になります。これはアルファベット文字でも使用できます。
注記: 中括弧内では変数を使用できないため、値をハードコーディングする必要があります。変数を使用するために、次のいくつかのセクションで従来の C スタイルの for ループについて説明します。
ループの配列反復
bash では、特定の構文の for ループを使用して配列を簡単に反復できます。 BASH の特殊変数、つまり @ を使用して、配列内のすべての要素にアクセスできます。コードを見てみましょう:
#!/bin/bash s=('football' 'cricket' 'hockey') for n in ${s[@]}; do echo $n done> 
@ 演算子を使用して配列要素を反復処理し、配列内のすべての要素を取得できます。したがって、for ループを使用して、それらを 1 つずつ反復処理します。変数 ${variable_name[@]} を使用します。ここでの中括弧は、文字列の配列である変数 s の値を展開します。 [@] 演算子を使用してすべての要素にアクセスし、for a ループ内で要素を反復処理します。ここで、 n は反復子であるため、値を出力したり、値に対して必要な処理を実行したりできます。
C スタイルの for ループ
前に述べたように、要素の範囲を反復するには、for ループ内で変数を使用する必要があります。したがって、C スタイルの for ループは非常に重要な役割を果たします。それらをどのように使用するかを見てみましょう。
Pythonプログラムリスト
#!/bin/bash n=7 for (( i=1 ; i<=$n ; i++ )); do echo $i done>

ご覧のとおり、終了条件の範囲の値を動的に使用できます。二重中括弧間のスペースは意図的に使用されている可能性があり、構文の一部であることに注意してください。 C スタイルの for ループは、初期化反復子、インクリメンタ/デクリメンタ、および終了条件の 3 つの部分で構成されるループです。
上記の構文では、ループ反復子/カウンターを 1 に初期化していますが、これは任意に設定できます。 2 番目の部分は終了条件です。ここでは変数を使用しています。 n これは for ループの前に初期化されるため、単純な $ 変数の値を取得する演算子。最後に、イテレータ/カウンタを任意の値に変更するインクリメンタ/デクリメンタがありますが、この例では単項演算子を使用しています。 (++) 値を 1 つ増やすと、次と同等になります。 i=i+1 。したがって、次のようなステートメントを使用できます i+=2、i-、++i、 などなど。
無限forループ
これは頻繁には使用しませんが、特定のことを機能させるのに役立つ場合があります。構文は非常に簡単で、C スタイルの for ループに似ています。
#!/bin/bash n=4 for (( ; ; )); do if [ $n -eq 9 ];then break fi echo $n ((n=n+1)) done>
ループは次から始まりますn>4 に設定します。増加しますn>反復ごとに 1 ずつ増加し、次の値を出力します。n>それまでn>が 9 に等しくなります。n>9に達すると、break>ステートメントが実行され、ループが終了します。スクリプトは 4 ~ 8 の数字を出力した後に停止します。

ご覧のとおり、「for」ループには条件がなく、永久にループしますが、永久に続かないことを確認するための条件ステートメントがあります。 if ステートメント内で Break ステートメントを使用して、ループから抜け出し、イテレーターによる反復を停止します。インクリメンタを使用してループ内の変数をインクリメントしました。それ以外の場合、ループは無限になります。もちろん、ループから抜け出すには何らかのロジックが必要です。そのため、if 条件文を使用する必要があります。