bik*_*ben 3 bash shell if-statement infinite-loop while-loop
好吧,我知道我问过类似的问题,我了解如何进行无限循环:
while [ 1 ]
do
foo
bar
then
sleep 10
done
Run Code Online (Sandbox Code Playgroud)
但是,如果我想在这个循环中运行一些(相当多的)IF ELSE 语句,一旦它们完成,我将如何让脚本继续循环,我将如何处理这个问题?
while :; do
if cond1; then
whatever
elif cond2; then
something else
else
break
fi
done
Run Code Online (Sandbox Code Playgroud)
while true您可以使用或使用 true 的较短别名进行无限循环:。[ 1 ]是不必要的复杂,并且不是你想象的那样([ 0 ]也是事实!)。if请记住, and中的条件while是任意命令,其退出状态(零 = true,非零 = false)用作条件值,并且[只是特殊test命令的别名(两者都内置在大多数 shell 中,但它们不必是)。do/done包括条件、更多循环和情况。break从内部终止最内层循环(就像大多数其他语言一样)。