除了使用 kill 之外,如何停止 tail -f

除了使用 kill 之外,如何停止 tail -f

我想编写一个shell脚本来检测我的程序是否启动成功。

程序会创建一个日志文件。当日志文件包含新行: 时Server startup in,停止 bash 命令。

我找到了一个解决方案kill

sh -c 'tail -f logfile | { sed "/Server startup in/ q" && kill $$ ;}'

但是当我把它放到我的詹金斯工作中时它不起作用,还有其他方法可以解决这个问题吗?

答案1

尝试一下:

tail -f logfile | grep -q "Server startup in"

它将搜索字符串,logfilegrep在出现包含该字符串的第一个新行后静默退出。命令退出后,将立即找到该字符串,然后您可以继续执行脚本。

相关内容