我很难找到分号和/或大括号的正确组合。我想这样做,但作为命令行的一行代码:

while [ 1 ]
do
    foo
    sleep 2
done

当前回答

在while的情况下也可以使用sleep命令。让一个内胆看起来更干净。

while sleep 2; do echo thinking; done

其他回答

while true; do foo; sleep 2; done

顺便说一句,如果在命令提示符下键入多行(如图所示),然后用箭头向上调用历史记录,则会在一行中得到正确的标点符号。

$ while true
> do
>    echo "hello"
>    sleep 2
> done
hello
hello
hello
^C
$ <arrow up> while true; do    echo "hello";    sleep 2; done

可以使用分号分隔语句:

$ while [ 1 ]; do foo; sleep 2; done

对于简单的过程监视,请改用监视

冒号总是“true”:

while :; do foo; sleep 2; done

在while的情况下也可以使用sleep命令。让一个内胆看起来更干净。

while sleep 2; do echo thinking; done