在一行的 while 循环中嵌套 for 循环

Nesting for loop inside a while loop on one line

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

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

如果相关,这是在 raspberry pi 上以特定模式闪烁 LED,而不是打印日期 date 命令只是为了查看发生了什么。

试试这个:

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

do 关键字后不应使用分栏。在您的情况下,在启动 for 循环之前无需使用 && 。在 for 循环之前使用 && 意味着,仅当 sleep 10 命令成功时才执行循环。

在您的情况下,尽管您在 for 循环之前是否使用 &&,但它给出的行为是相同的。