我正在编写一个障碍来阻止脚本的执行,直到记录了某个关键字。脚本非常简单:
tail -F -n0 logfile.log | while read LINE; do
[[ "$LINE" == *'STOP'* ]] && echo ${LINE} && break;
done
或者
tail -F -n0 logfile.log | grep -m1 STOP
问题是它不会在检测到关键字后立即退出,而只会在写入下一行之后退出。IE:
printf "foo\n" >> logfile.log # keeps reading
printf "foo\n" >> logfile.log # keeps reading
printf "STOP\n" >> logfile.log # STOP printed
printf "foo\n" >> logfile.log # code exits at last
不幸的是,我不能依赖在“STOP”之后将记录另一行的事实(至少不在对我的目的有用的间隔内)。
到目前为止找到的解决方法是tail
另一个我知道肯定会经常更新的文件,但是什么是“干净”的解决方案,以便代码在记录STOP后立即退出?