Bashのforループ - リスト、範囲、ファイルの反復処理
リスト反復、C言語スタイルのループ、範囲式、ファイルグロブ、コマンド出力の反復処理を含むbashのforループの完全ガイド。
Control Flow
詳細な説明
Bashのforループ
forループはbashで最も汎用的な制御フロー構文の1つです。リスト、範囲、ファイルパターン、コマンド出力を反復処理できます。
基本的なリスト反復
for fruit in apple banana cherry; do
echo "I like $fruit"
done
範囲式
for i in {1..10}; do
echo "Number: $i"
done
# ステップ付き範囲
for i in {0..100..5}; do
echo "Value: $i"
done
C言語スタイルのforループ
for ((i=0; i<10; i++)); do
echo "Iteration $i"
done
ファイルの反復処理
for file in *.log; do
echo "Compressing $file"
gzip "$file"
done
コマンド出力の反復処理
for user in $(cut -d: -f1 /etc/passwd); do
echo "User: $user"
done
実践的な例
# ファイルの一括リネーム
for file in *.jpeg; do
mv "$file" "${file%.jpeg}.jpg"
done
# 複数サーバーのチェック
for server in web{1..5}.example.com; do
ping -c 1 -W 2 "$server" > /dev/null 2>&1 \
&& echo "$server: UP" \
|| echo "$server: DOWN"
done
注意:スペースを含む可能性のあるファイル名を反復処理する場合は、常に変数をクォートしてください:$fileではなく"$file"。
ユースケース
forループはほぼすべてのbashスクリプトで使用されます。一般的な使用例はファイルのバッチ処理(リネーム、変換、圧縮)、複数ホストのサーバーヘルスチェック、複数環境への自動デプロイ、ログローテーションスクリプト、データ処理パイプラインなどです。