Categories: shellscript

シェルスクリプトにおけるuntil文の使い方を解説

シェルスクリプトの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 文とは逆のロジックで処理を制御できます。

シェルスクリプトにおいて、特定の条件を待つ場合や、繰り返し処理を行う際に非常に便利です。

Haruoka