我得到了以下代码:
tail -fn0 /var/log/messages | \
while read line ; do
echo "$line" | grep "test"
if [ $? = 0 ]
echo "Running information gathering"
then
etc...etc
Run Code Online (Sandbox Code Playgroud)
它应该做的是持续监视“/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
Run Code Online (Sandbox Code Playgroud)
grep -q 在第一场比赛后退出,因此一旦找到第一场比赛,您的脚本就会继续。
| 归档时间: |
|
| 查看次数: |
10545 次 |
| 最近记录: |