我得到了以下代码:
tail -fn0 /var/log/messages | \
while read line ; do
echo "$line" | grep "test"
if [ $? = 0 ]
echo "Running information gathering"
then
etc...etc
它应该做的是持续监视“/var/tmp/messages”文件的添加行,如果其中包含“test”一词,则执行脚本的其余部分并在完成后退出。
它会尽快执行脚本的其余部分 任何 无论行的内容如何,都会将行添加到消息文件中。我添加了 echo 命令,并且 $line 正确包含了新的日志文件行。我尝试将测试“$? = 0”更改为“$? = 1”,但没有任何区别。
有人可以给我一个指针吗?
谢谢@TomFenech
最佳答案
我建议不要使用循环,您可以通过使用 grep 使事情变得更简单:
tail -fn0 /var/log/messages | grep -q test
echo "Running information gathering"
# rest of script
grep -q
在第一场比赛后退出,因此一旦找到第一场比赛,您的脚本就会继续。
关于bash - 错误的尾部语法或 grep 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26737639/