until – 条件が真になるまでループを繰り返すシェル構文

制御構文(条件・ループ)

until は Linux シェル(bash など)の ループ構文 で、指定した条件が 真になるまで 繰り返し処理を実行します。
while が「条件が真の間」繰り返すのに対し、until は「条件が偽の間」繰り返すという逆の動作をします。

構文(Syntax)

until [ 条件式 ]
do
    コマンド群
done

主な使用パターン

形式説明使用例
until [ 条件 ]条件が偽の間ループuntil [ $i -gt 5 ]; do echo $i; i=$((i+1)); done
until false無限ループ(while true と同等)until false; do date; sleep 1; done

実行例

1〜5までカウントアップ

i=1
until [ $i -gt 5 ]
do
    echo "Count: $i"
    i=$((i+1))
done

出力例:

Count: 1
Count: 2
Count: 3
Count: 4
Count: 5

条件が満たされるまで待機(ファイルが存在するまで)

until [ -f /tmp/ready.flag ]
do
    echo "waiting..."
    sleep 2
done
echo "file detected!"

出力例:

waiting...
waiting...
file detected!

無限ループ(Ctrl+Cで停止)

until false
do
    date
    sleep 1
done

出力例:

Thu Aug 21 12:45:01 JST 2025
Thu Aug 21 12:45:02 JST 2025
...

エラー例(条件式を省略)

until
do
    echo "test"
done

出力例:

bash: syntax error near unexpected token `do'

関連コマンド / 構文

  • while : 条件が真の間ループ処理(until の逆の動作)
  • for : 範囲やリストを順に処理
  • break : ループを中断して抜ける
  • continue : 次のループに進む

備考

  • untilシェルの構文(キーワード) であり、which until などでは場所を確認できません。
  • whileuntil は表裏一体の構文ですが、処理の意図を明確にするために適切に使い分けるとコードが読みやすくなります。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント