Bash 速習チュートリアル

Bash のループ

1. Bash におけるループの使用方法

このセクションでは、Bash スクリプティングにおけるループ(Loops)の使用方法について解説します。これには forwhile、および until ループが含まれます。

2. for 文

for 文を使用すると、項目のリストや数値の範囲に対して反復処理(イテレーション)を行うことができます。特定の回数だけタスクを繰り返したい場合に非常に便利です。

for キーワードの後には変数名、値の範囲、そしてループブロックの開始を示す do キーワードが続きます。

実行例:for 文

# for 文の例
for i in {1..5}; do
  echo "反復処理 $i"
done

3. while 文

while 文は、指定された条件(コンディション)が真(true)である限り、コードブロックを実行し続けます。
特定の条件が変化するまでタスクを繰り返す必要がある場合に適しています。

条件は角括弧 [ ] で囲み、ループは done で終了します。

実行例:while 文

# while 文の例
count=1
while [ $count -le 5 ]; do
  echo "現在のカウント: $count"
  ((count++))
done

4. until 文

until 文は while 文と似ていますが、指定された条件が「真(true)」になるまで(=偽である間)実行を続けます。

条件は角括弧 [ ] で囲み、ループは done で終了します。

実行例:until 文

# until 文の例
count=1
until [ $count -gt 5 ]; do
  echo "現在のカウント: $count"
  ((count++))
done

5. break と continue

breakcontinue ステートメントは、ループの実行を制御するために使用されます。break はループを完全に抜け出し(終了)、continue は現在の反復をスキップして次の回へ進みます。

これらのステートメントは、通常、ループ内の条件分岐(if ブロック)の中で使用され、ループのフローを動的に変更します。

実行例:break と continue

# break と continue の例
for i in {1..5}; do
  if [ $i -eq 3 ]; then
    continue # 3 の場合は以降の処理をスキップ
  fi
  echo "数値: $i"
  if [ $i -eq 4 ]; then
    break # 4 に達したらループを終了
  fi
done

6. ネストされたループ

ネストされたループ(Nested Loops)を使用すると、あるループの中に別のループを配置することができ、より複雑な反復パターンを実装できます。

各ループは、それぞれ対応する done で閉じる必要があります。

実行例:ネストされたループ

# ネストされたループの例
for i in {1..3}; do
  for j in {1..2}; do
    echo "外側ループ $i, 内側ループ $j"
  done
done