他のスクリプト言語と同様に、Bash もループをサポートしています。
ループは反復的なタスクを実行するのに最適です。 Bash スクリプトで for ループと while ループを利用できます。
Bash for ループ
for ループの構文は次のとおりです。
for VARIABLE in PARAM1 PARAM2 PARAM3
do
// scope of for loop
done
for ループは各パラメーターに対して実行されます。パラメータは、数値、数値の範囲、または文字列などです。
Bash for ループの例
この単純な例では、for ループを使用して 1 から 5 までの数字を出力します。
#!/bin/bash
for i in 1 2 3 4 5
do
echo "$i"
done
出力:
1
2
3
4
5
Bash For ループ - 数値の範囲を出力
ループする数値の範囲を定義することもできます:
例:
for i in {1..5}
do
echo "$i"
done
出力:
1
2
3
4
5
文字列の Bash ループ
for ループを使用して文字列パラメータをループすることもできます:
#!/bin/bash
for day in MON TUE WED THU FRI SAT SUN
do
echo "$day"
done
出力:
MON
TUE
WED
THU
FRI
SAT
SUN
Bash for ループ - C スタイル
C スタイルの構文を使用して for ループを記述することもできます。例:
#!/bin/bash
for ((i=1; i<=5; i++))
do
echo "$i"
done
出力
1
2
3
4
5
現在のディレクトリ内のファイルのリストを出力するためのループ
bash for ループを使用して現在のディレクトリ内のすべてのファイルを一覧表示するには、次を使用します。
#!/bin/bash
for fname in ./
do
ls -l $fname
done
Bash While ループ
Bash は while ループもサポートしています。 while ループは、条件が true と評価されるまで一連の命令を実行します。
Bash while ループの構文は次のとおりです。
while [condition]
do
//execute instructions
done
条件は、命令を実行する前に評価されます。したがって、条件を更新する手段が必要です。そうしないと、ループが永遠に実行されてしまいます。
Bash While ループの例
以下は、1 から 5 までの数字を出力する単純な while ループです。number が 5 より大きい場合、ループは終了します。
#!/bin/bash
num=1
while [ $num -le 5 ]
do
echo "$num"
let num++
done
Bash C スタイルの While ループ
for ループと同様に、bash の while ループも C スタイルの言語で記述できます。
例:
#!/bin/bash
num=1
while((num <= 5))
do
echo $num
let num++
done