until文もwhile文と同じで繰り返し処理をしたい場合に使用する構文です。
while文は条件式が成り立っている間(真の間)、繰り返し処理を行います。
対して、until文は条件式が成り立つようになるまで(真になるまで)繰り返し処理を行います。
つまり、while文とは条件式の真偽が逆になります。
until文の例を記します。
#!/bin/bash cnt=0 until [ $cnt -eq 10 ] do cnt=`expr ${cnt} + 1` echo $cnt done
上記シェルスクリプトは「cnt」変数が10になるまでdo~doneまでの処理が実行されます。
ファイル名「prog008.sh」として保存したときの実行例です。
$ chmod u+x prog008.sh $ ./prog008.sh 1 2 3 4 5 6 7 8 9 10
条件式で使われている「-eq」演算子は左辺と右辺の数値が等しいかどうかを判定し、等しければ真を返します。