协慌网

登录 贡献 社区

单行 Bash 无限 while 循环的语法

我在提出分号和 / 或花括号的正确组合时遇到了麻烦。我想这样做,但是作为命令行的单行代码:

while [ 1 ]
do
    foo
    sleep 2
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 条件下使用 sleep 命令。使单线看起来更干净,恕我直言。

while sleep 2; do echo thinking; done

冒号始终是 “true”:

while :; do foo; sleep 2; done