在一行的 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 循环之前是否使用 &&
,但它给出的行为是相同的。
我正在尝试 运行 一个脚本,每隔 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 循环之前是否使用 &&
,但它给出的行为是相同的。