bash - Bash 循环以每秒运行 N 次命令
问题描述
我正在尝试编写代码,以便命令在 bash shell 脚本中每秒重复 N(比如 10)次。我在发送第一个 10 个命令后让循环等待剩下的秒数时遇到问题。我正在使用 while 循环来启动循环:
while [ $SECONDS -lt $((SECONDS+$time)) ]; do
对于我使用 for 循环的命令数量:
for i in $(seq 1 10); do echo 'Hello!'; done
解决方案
您可以sleep
在后台启动 a 并等待它:
sleep 1 &
pid=$!
for i in $(seq 1 10); do echo 'Hello!'; done
wait "$pid"
这确保了wait
无论 for 循环需要多长时间,都只会等待秒的剩余时间。(如果花费的时间超过 1 秒,则wait
立即结束)。
推荐阅读
- reactjs - react useState 这样使用会导致无法输入中文,为什么呢?
- docker - 当我在 docker 中运行我的系统 .net 核心应用程序时,抛出错误为“此平台不支持 System.Data.OleDb”
- python - 甚至我所有的实例设置和 Dockerfile 都没有找到 nginx 404
- python - Python:基于组求和并将其显示为附加列
- duplicates - 仅选择结果中多行中的第一行(不是全部)
- ruby-on-rails - 无法在生产环境中访问 Rails 控制台中的不同数据库
- regex - 如何在 htaccess 中使用 rewriteRule
- spring - spring data r2dbc @createdBy 字段设置
- typescript - 如何使用当前的 ts-jest 获取覆盖图?
- node.js - 安装 ['serve@latest'] 失败,代码为 1