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」演算子は左辺と右辺の数値が等しいかどうかを判定し、等しければ真を返します。