编辑 - 在 4 月 7 日稍微改写了这个问题,以使其更清楚。
当前的工作环境是 OSX 10.4.11。
我想扫描日志文件中的某个短语。不能在脚本开始时清空日志文件。因此,脚本必须只扫描对日志的更改。
我当前的脚本:
#!/bin/sh
tail -f log.txt | while read line
do
if echo $line | grep -q 'LOL CANDY'; then
echo 'LOL MATCH FOUND'
exit 0
fi
done
它可以正常工作,因为它会在找到“LOL CANDY”后立即“找到LOL MATCH FOUND”,但它不会真正退出脚本,直到在“LOL CANDY”之后的日志中添加了一些其他内容。我需要它立即退出。尽管我不确定它是否具体相关,但存在“tail -f”永远保持打开状态的问题。有人可以给我一个不使用tail -f的例子吗?
如果你愿意,你可以给我一个 bash 脚本,因为 OSX 可以处理 sh、bash 和我认为的其他一些 shell。