Bashのwhileループ:使い方と実例を初心者向けに解説

January 20, 2025

Bashのwhileループは、指定された条件が真(true)である間、繰り返し処理を実行するための基本的な構文です。タスクの自動化や複雑なループ処理に非常に役立ちます。本記事では、Bashのwhileループの基本構文から実例までを初心者向けに解説します。


1. whileループとは?

whileループは、条件が満たされる限り、指定されたコマンドを繰り返し実行します。

基本構文:


while [ 条件 ]
do
    # 実行するコマンド
done

条件が偽(false)になると、ループは終了します。


2. 基本的な使用例

以下は、whileループを使った基本的な例です。

例1:1から5までの数値を表示


#!/bin/bash

i=1
while [ $i -le 5 ]
do
    echo "カウント: $i"
    ((i++))
done

結果:


カウント: 1
カウント: 2
カウント: 3
カウント: 4
カウント: 5

この例では、iが5以下である限りループが繰り返されます。


3. 条件付き処理

whileループは、条件によって動作を制御できます。

例2:ファイルの存在をチェック


#!/bin/bash

file="example.txt"
while [ ! -f "$file" ]
do
    echo "$file が存在しません。チェック中..."
    sleep 2
done

echo "$file が見つかりました!"

結果: ファイルが見つかるまで2秒ごとにメッセージが表示されます。


4. 無限ループと制御方法

無限ループを作成することもできますが、制御しないとスクリプトが終了しません。

例3:無限ループ


#!/bin/bash

while true
do
    echo "このメッセージは繰り返されます"
    sleep 1
done

無限ループを終了するには、Ctrl + Cを押して停止します。

breakとcontinueを使用した制御:


#!/bin/bash

i=1
while [ $i -le 10 ]
do
    if [ $i -eq 5 ]; then
        echo "中断します"
        break
    fi
    echo "カウント: $i"
    ((i++))
done

5. 実用的な応用例

以下は、whileループの実用的な使用例です。

例4:ログファイルを監視


#!/bin/bash

logfile="/var/log/syslog"
while true
do
    tail -n 10 $logfile
    sleep 5
done

このスクリプトは、指定されたログファイルの最後の10行を5秒ごとに表示します。

例5:入力を検証


#!/bin/bash

while true
do
    read -p "数字を入力してください (終了: 0): " num
    if [ $num -eq 0 ]; then
        echo "終了します"
        break
    elif [ $num -lt 0 ]; then
        echo "正の数を入力してください"
    else
        echo "入力された数字: $num"
    fi
done

6. Bashスクリプトを学ぶ利点

whileループを含むBashスクリプトを学ぶことで、タスクの自動化や効率的な処理が可能になります。

  • システム管理を簡単にする
  • 繰り返しタスクを自動化
  • 複雑な条件処理を簡潔に記述

7. さらに学びたい方へ

Bashのwhileループやスクリプトの詳細をもっと学びたい方は、私たちのBashスクリプトチートシートをご覧ください!初心者にも分かりやすいコード例やヒントが満載で、効率的にスキルを向上させることができます。


まとめ

Bashのwhileループは、条件付きでタスクを繰り返すための強力なツールです。本記事を参考に、基本から応用例までを学び、Bashスクリプトを使った自動化や効率化に挑戦してみましょう!

ぜひBashスクリプトチートシートもチェックして、さらにスクリプト作成のスキルを磨いてください!