Bash 每秒循环到 运行 一个命令 N 次

Bash looping to run a command N times every second

我正在尝试编写代码,以便命令在 bash shell 脚本中每秒重复 N(比如 10)次。我在发送第一个 10 个命令后让循环等待剩下的秒数时遇到问题。我正在使用 while 循环来启动循环:

while [ $SECONDS -lt $((SECONDS+$time)) ]; do

我使用 for 循环的命令数:

for i in $(seq 1 10); do echo 'Hello!'; done

您可以在后台启动一个sleep并等待它:

sleep 1 &
pid=$!

for i in $(seq 1 10); do echo 'Hello!'; done

wait "$pid"

这确保 wait 将只等待第二个的剩余部分,而不管 for 循环需要多长时间。 (如果超过 1 秒,wait 立即完成)。