gpt4 book ai didi

linux - 'grep -q' 不以 'tail -f' 退出

转载 作者:IT王子 更新时间:2023-10-29 00:23:49 26 4
gpt4 key购买 nike

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

这是我使用 tail -fgrep -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

关于linux - 'grep -q' 不以 'tail -f' 退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7178888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com