'grep -q'没有退出'tail -f'

Ava*_*dhP 7 linux bash grep

我正在尝试实现一个等待日志文件中的特定消息的脚本.记录消息后,我想继续脚本.

这是我正在尝试的tail -fgrep -q:

# tail -f logfile | grep -q 'Message to continue'
Run Code Online (Sandbox Code Playgroud)

grep从没有放弃过,所以它永远等待,即使"消息继续"的文件中被记录下来.

当我运行它没有-f它似乎工作正常.

kni*_*ttl 9

tail -f将读取文件并显示稍后添加的行,它将不会终止(除非SIGTERM发送信号).grep这里不是阻挡部分,tail -f是.grep将从管道读取,直到它关闭,但它永远不会是因为tail -f不退出并保持管道打开.


您的问题的解决方案可能是(未经过测试且很可能表现不佳):

tail -f logfile | while read line; do
  echo $line | grep -q 'find me to quit' && break;
done
Run Code Online (Sandbox Code Playgroud)