等待输出然后执行命令

等待输出然后执行命令

我有一个 bash 脚本,它提供了一些输出。但有时输出需要很长时间。怎么可能只等待输出命令5秒,如果5秒内没有输出我们就执行bash-script-2。如果有输出,我们执行 bash-script-1。

我尝试在网络上搜索找不到任何相关内容。

答案1

将输出发送到日志文件,然后将tail -f日志文件发送到超时并匹配任何内容:

some-long-running-command > log-file &
if timeout 5 tail -f log-file | grep .
then
  # grep found something before tail was killed
  bash-script-1
else
  # tail was killed before grep found anything
  bash-script-2
fi

timeout命令来自 GNU coreutils。

相关内容