【发布时间】:2023-03-20 14:59:01
【问题描述】:
是否可以在bash 中进行do; condition; while 循环?
例如:
do
curl -f google.com/demo
while [ $? -ne 0 ]
done
如果我这样做
while [ $? -ne 0 ]
do curl -f google.com/demo
done
...我依赖循环前的命令。
【问题讨论】:
标签: bash
是否可以在bash 中进行do; condition; while 循环?
例如:
do
curl -f google.com/demo
while [ $? -ne 0 ]
done
如果我这样做
while [ $? -ne 0 ]
do curl -f google.com/demo
done
...我依赖循环前的命令。
【问题讨论】:
标签: bash
不,这是不可能的。
唯一有效的替代方法是在无限循环中使用 break:
while :; do
if ! curl -f google.com/demo
then
break
fi
done
无论如何,这看起来像 XY 问题,而您真正想要的可能是循环直到命令返回非零:
while ! curl -f google.com/demo; do :; done
或
until curl -f google.com/demo; do :; done
【讨论】:
until curl -f google.com/demo; do :; done