whileは与えた条件が真(0)である間,処理を繰り返す繰り返し制御文だ。whileは次のように記述する。
条件式には,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]を押せばよい。