好的,我知道我问了一个类似的问题,我理解如何做一个无限循环:
while [ 1 ]
do
foo
bar
then
sleep 10
done
但是如果我想在这个循环中运行一些(相当多的)IF ELSE语句,一旦完成后我怎么能让脚本继续循环?
答案 0 :(得分:4)
while :; do
if cond1; then
whatever
elif cond2; then
something else
else
break
fi
done
while true
或使用true的较短别名:
进行无限循环。 [ 1 ]
不必要地复杂化,而不是你认为的那样([ 0 ]
也是如此!)。请记住,if
和while
中的条件是任意命令,其退出状态(零= true,非零= false)用作条件值,[
只是特殊{{{1}的别名1}}命令(两者都内置在大多数shell中,但它们不一定是这样)。test
/ do
之间允许任何shell构造,包括条件,更多循环和案例。done
从内部终止最内层循环(就像大多数其他语言一样)。答案 1 :(得分:0)
在bash中的if只是:if [ some test ]; then some_command; fi
:
while [ 1 ]
do
if [ some test ]
then
some command
else
other cmd
fi
sleep 10
done
答案 2 :(得分:0)
对chown case的更正添加了制动器来完成循环 校正
while [ 1 ]
do
if [ some test ]
then
some command
brake
else
other cmd
fi
sleep 10
done