我有一个 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。