Bashのwhileとuntilループ - ファイル読み込み、ポーリング、カウンター

ファイルの行単位読み込み、サービスのポーリング、カウンターの実装、リトライロジックの構築のためのbashのwhileとuntilループをマスターします。

Control Flow

詳細な説明

Bashのwhileとuntilループ

whileループは条件が真である間コマンドブロックを繰り返します。untilループは条件が真になるまで繰り返します。

基本的なwhileループ

count=5
while [ $count -gt 0 ]; do
  echo "$count..."
  count=$((count - 1))
done

ファイルの行単位読み込み

while IFS= read -r line; do
  echo "Processing: $line"
done < input.txt

untilループ

until curl -sf http://localhost:3000/health > /dev/null 2>&1; do
  echo "サーバーを待機中..."
  sleep 2
done
echo "サーバーが起動しました!"

リトライロジック

MAX_RETRIES=5
attempt=0
while [ $attempt -lt $MAX_RETRIES ]; do
  if deploy_application; then
    echo "デプロイ成功"
    break
  fi
  attempt=$((attempt + 1))
  echo "試行 $attempt 失敗、10秒後にリトライ..."
  sleep 10
done

ユースケース

whileループは設定ファイルの読み込み、ログファイルの行単位処理、サービスヘルスチェックのポーリング、信頼性の低い操作(ネットワークリクエスト、デプロイ)のリトライメカニズムの構築、対話型コマンドラインメニューの作成、定期的なシステムリソース監視に不可欠です。

試してみる — Bash Cheat Sheet

フルツールを開く