前端之家收集整理的这篇文章主要介绍了
linux – ‘grep -q’没有退出’tail -f’,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试实现一个等待日志
文件中的特定消息的脚本.记录消息后,我想继续脚本.
这是我用tail -f和grep -q尝试的东西:
# tail -f logfile | grep -q 'Message to continue'
grep永远不会退出,所以即使文件中记录了“要继续的消息”,它也会永远等待.
当我没有-f运行它似乎工作正常.
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
原文链接:https://www.f2er.com/linux/394570.html