Bashのfor文はどういうときに使える?
-
データ処理: 複数のファイルやデータを一括で処理したいときに、for文を使って効率的に操作できる
-
自動化: 定期的なタスク(バックアップやログの整理など)を自動化する際に、繰り返し実行するコマンドを簡単に記述できる
-
計算や集計: 数値のリストを使って合計や平均を計算する場合など、繰り返し処理が必要な場面で活躍する
-
インストールや設定: 複数のソフトウェアやパッケージを一度にインストールするスクリプトを書くときに便利
これらの用途により、for文は日常的な作業を効率化し、時間を節約するのに役立ちます。
Bashにおけるfor文の基本構文
for variable in list
do
コマンド
done
例えば、1から5までの数を表示するには、次のように書きます:
for i in {1..5}
do
echo $i
done
このスクリプトは、変数i
に1から5までの値を順に代入し、それをecho
コマンドで表示します。for文を使うことで、繰り返し処理が簡単に実現できます。
Bashのfor文の応用編の具体例
1. 複数ファイルのバックアップ
指定したディレクトリ内のすべてのファイルをバックアップするスクリプトです。
for file in /path/to/source/*; do
cp "$file" /path/to/backup/
done
2. サーバーへの一括SSH接続
複数のサーバーに一度にコマンドを実行する場合です。
servers=("server1" "server2" "server3")
for server in "${servers[@]}"; do
ssh user@"$server" 'uptime'
done
3. 数値の集計
1から10までの数の合計を計算する例です。
sum=0
for i in {1..10}; do
sum=$((sum + i))
done
echo "合計: $sum"
4. 環境変数の設定
複数の環境変数を一括で設定する例です。
for var in VAR1 VAR2 VAR3; do
export $var="value_of_$var"
done
5. 複数のディレクトリの作成
指定した名前のディレクトリを一度に作成します。
for dir in "dir1" "dir2" "dir3"; do
mkdir "$dir"
done
ループ処理
Bashのfor文では、ループ変数を使用する際には$
をつける必要がありますが、変数を定義する際にはつけません。具体的には次のようになります。
for i in {1..5}; do
echo $i # ここでは$が必要
done
-
ループ変数の使用:
echo $i
のように、変数の値を参照する場合には$
が必要 -
変数の定義:
for i in {1..5};
のように、ループ変数i
を定義する際には$
は不要
要するに、変数を参照するときには$
をつけ、定義する際にはつけないというルールです。
最後に
SHLなしでも効率化が進みますね!