
until 是 Bash 和其他类 Unix shell 中的一个循环控制命令。它的作用与 while 循环相反:只要条件为假(非零退出状态)就执行循环体内的命令,一旦条件为真(零退出状态)就停止循环。
until [ condition ]; do
# 要执行的命令
done或者写成一行(用分号分隔):
until [ condition ]; do commands; donecondition:一个条件测试命令。可以是:[ ] 或 test)do 和 done 之间的命令是循环体,会重复执行直到条件为真。#!/bin/bash
count=1
until [ $count -gt 5 ]; do
echo "Count: $count"
((count++))
doneuntil ping -c1 example.com &>/dev/null; do
echo "等待 example.com 上线..."
sleep 2
done
echo "example.com 已上线!"until [[ "$input" =~ ^[YyNn]$ ]]; do
read -p "是否继续? (y/n): " input
done
echo "你选择了: $input"until [ -f /tmp/done.txt ]; do
echo "等待 /tmp/done.txt 文件被创建..."
sleep 1
done
echo "文件已找到!"is_server_up() {
curl -s http://example.com > /dev/null
return $? # 返回 curl 的退出状态
}
until is_server_up; do
echo "服务器未响应,重试中..."
sleep 5
done
echo "服务器已启动!"until 在每次循环迭代之前检查条件。Ctrl+C 强制终止。[ ] 测试,可以是任何返回退出状态码的命令。while 的对比:until [ ! condition ] 等价于 while [ condition ]希望这些示例和解释能帮助你理解 until 的用法!