シェル・スクリプト・リファンレス
コマンド集(機能別) | コマンド集(アルファベット順) | コマンド逆引き大全 | シェル・スクリプト・リファンレス

 条件が満たす間繰り返す「while」

 whileは与えた条件が真(0)である間,処理を繰り返す繰り返し制御文だ。whileは次のように記述する。


while 条件式
do
	繰り返す処理
done

 条件式には,testや[...]が利用できる。たとえば,以下のようなシェル・スクリプト「woo.sh」があったとする。


#!/bin/sh

string_buf="Wo"
while [ $string_buf != "Wooooooo" ]
do
	string_buf=$string_buf."o"
	echo $string_buf
done

 このスクリプトを実行すると,


$ ./woo.sh 
Woo
Wooo
Woooo
Wooooo
Woooooo

のように,Woにoを1つずつ付けてゆく。そして文字列が「Wooooooo」になったら条件が満たされなくなり,繰り返しから抜ける。

 また,何もせずに真を返す「:」を条件式に記述することで,無限ループを作成できる。たとえば,以下のようなシェル・スクリプト「infloop.sh」があったとする。


#!/bin/sh

while :
do
	echo "Running this script forever..."
done

 このスクリプトを実行すると,


$ ./infloop.sh 
Running this script forever...
Running this script forever...
Running this script forever...
     :

のように延々と実行し続ける。実行を止めたい場合は[Ctrl]+[c]を押せばよい。