シェルスクリプトのuntil文は、特定の条件が満たされるまで繰り返し処理を実行するための制御構造です。
この記事では、until 文の基本的な使い方から実際の使用例まで、詳しく解説します。
目次
until文の基本構文
until文の基本的な構文は以下の通りです。
until 条件
do
# コマンドや処理
done
この構文では、until文のブロック内にある処理は、指定した条件が偽である間、繰り返し実行されます。条件が真になると、ループが終了します。
until文を用いたサンプルスクリプト
カウントアップするスクリプト
以下は、カウンタが5になるまでループを実行するシンプルな例です。
#!/bin/bash
counter=1
until [ $counter -gt 5 ]
do
echo "Counter is $counter"
((counter++))
done
このスクリプトでは、counterが5を超えるまで「Counter is [数値]」というメッセージが表示されます。counterが5を超えると、ループが終了します。
ファイルの存在確認を行うスクリプト
ファイルが作成されるのを待つ場合の例です。ファイルが存在するまでループを継続します。
#!/bin/bash
file="myfile.txt"
until [ -e $file ]
do
echo "Waiting for $file to be created..."
sleep 1
done
echo "$file has been created."
このスクリプトでは、myfile.txt が存在するまで、毎秒「Waiting for [ファイル名] to be created…」というメッセージが表示されます。ファイルが作成されると、「[ファイル名] has been created.」というメッセージが表示されます。
until文と while文の違い
until文は条件が偽である間ループを実行しますが、while文は条件が真である間ループを実行します。
以下のように構文は類似していますが、逆の効果になります。
# until文の例
until [ 条件 ]
do
# コマンド
done
# while文の例
while [ 条件 ]
do
# コマンド
done
まとめ
until文は、条件が偽である限りループを続けるため、while 文とは逆のロジックで処理を制御できます。
シェルスクリプトにおいて、特定の条件を待つ場合や、繰り返し処理を行う際に非常に便利です。