我正在尝试读取不断变化的日志文件(即文本文件),并对该文件中的某些文本生成警报.我想通过bash脚本来做到这一点,但我很困惑,一旦一些文本进入该日志文件,我将如何调用我的程序.
换句话说,我如何在该文件上一直检查,以便每当某个特定文本进入该文件时,我都会收到有关该文本的警报.任何函数调用?或者是其他东西?请指教.
也许这可以让你开始.试试这个test.sh脚本:
#/bin/sh
while read line
do
echo `date` " $line"
done
Run Code Online (Sandbox Code Playgroud)
现在尝试像这样调用它(qwe是一个带有一些行的简单文本文件):
./test.sh < qwe
Run Code Online (Sandbox Code Playgroud)
它将从qwe读取行并打印它们直到EOF.
现在像这样调用它:
tail -f qwe | ./test.sh
Run Code Online (Sandbox Code Playgroud)
现在它将读取线但它不会停在EOF但等待下一行.
如果您在单独的终端中执行此操作:
`echo "hi" >> qwe`
Run Code Online (Sandbox Code Playgroud)
你看..