在一行中将while循环嵌套在while循环中

时间:2018-05-03 18:46:13

标签: nested-loops ash

我正在尝试运行一个脚本,每隔十秒钟循环一次,每秒五次。如何从命令行而不是脚本执行此操作? 这不起作用:

while true; do; sleep 10 && for i in `seq 3` do; sleep 1 && date; done; done

这适用于脚本:

#!/bin/ash
while true; do
    sleep 10
    for i in `seq 3`; do
        sleep 1 && date
    done
done

如果它是相关的,那就是在树莓派上以特定模式闪烁一个led,不打印日期命令只是为了看看发生了什么。

1 个答案:

答案 0 :(得分:0)

试试这个:

while true; do sleep 10 ; for i in `seq 3`; do sleep 1 && date ; done ; done

do关键字后不应使用半列。在您的案例中启动&&循环之前无需使用for。在&&循环之前使用for意味着,仅当sleep 10命令成功时才执行循环。

在你的情况下,虽然你之前使用&& for循环,但它给出的行为是相同的。