我有一个启动服务器脚本
startserver.sh
它将作为后台任务startserver.sh &
运行
脚本需要运行一段时间才能真正运行在运行状态。
运行状态可以在准备就绪时写入日志文件server.log
。
所以我需要通过执行bash cmd来了解服务器何时真正运行。如果没有,我需要等到在server.log中显示Running状态。
我可以用bash实现这个目标吗?
答案 0 :(得分:0)
尝试这样的事情
mkfifo my_fifo
tail -f server.log >my_fifo &
tail_pid=$!
perl -ne '/pattern/&&exit' <my_fifo
kill $tail_pid
rm my_fifo
编辑:perl命令可以替换为
grep -l 'pattern' <my_fifo >/dev/null
或者如果grep支持此选项
grep -q 'pattern' <my_fifo