until文はwhile文とは反対に終了状態が非ゼロ(偽)である間ループが 実行されます。 期待する現象が起こるのを待って処理を行う場合などに使われ、一般書式は次 のようになります。
until condminixのようなマルチタスクOSで複数のプロセスが1つのファイルを共有する 時には排他制御をしなければなりません。 このためのロックファイルをスクリプトで作るときに次のような使い方をします。
do
commands
done
until (ロックファイルを作る)untilの条件文で排他制御のためのロックファイルを作ろうとします。 既にロックファイルが存在していたならば、そのファイルは他のプロセスで使用中で すから作成に失敗して非ゼロ(偽)が返されます。ファイルへのアクセス権が得られない ならば do〜 doneが実行されます。この例では30秒間隔で再試行を 行ない、ロックファイルが作れたならば次の処理に進みます。
do
sleep 30
done