我想拖尾文件并输出其内容,直到达到某个模式。目前,我这样做:
grep -q 'pattern' <(tail -F /my/file | tee /dev/stderr)
exit 0
这很好用,但问题在于,即使这个bash进程退出,也会有一个尾巴悬挂的过程。这对于Rundeck来说是一个问题,因为它会认为我的命令还没有完成。我尝试过这些选项:
使用tail --pid = $$。这适用于Linux,但我正在使用Mac,其尾部版本不支持--pid。
使用“kill 0”。这确实会杀死尾部进程,但它也会崩溃Rundeck(原文如此)。
还有其他建议吗?
答案 0 :(得分:2)
您应该grouping commands代替:
{ tail -F /my/file | tee /dev/stderr; } | grep -q 'pattern'
现在grep
会在找到模式时向管道中的上一个命令发送SIGPIPE
。