我有日志文件不断更新30分钟,我实现了脚本,它将检查该日志文件,直到它成功"成功"写在其中的消息。到目前为止,我已在下面实施。任何帮助或更正将不胜感激。
while [ "($cat R12TECH2.log | grep 'success')" != " " ]
do
echo "Please wait...devccm Adautoconfig is still running..."
sleep 5
done
echo "Status of devccm adautoconfig"
cat R12TECH2.log | grep 'success'
exit
答案 0 :(得分:0)
替换
while [ "($cat R12TECH2.log | grep 'success')" != " " ]
使用:
while ! grep -q 'success' R12TECH2.log
while
语句不需要[...]
语句。它将与任何提供令人满意的退出代码的命令一起使用。 grep
就是这样一个命令。由于我们不关心grep
命令的输出,我们使用-q
来使其静音。
考虑测试文件:
$ cat R12TECH2.log
line 1
success
line 3
此grep
命令返回成功(0):
$ grep -q 'success' R12TECH2.log; echo code=$?
code=0
但是,我们希望while
循环仅在success
不在文件中时运行。因此,提供一个前导!
,告诉shell否定退出代码:
$ ! grep -q 'success' R12TECH2.log; echo code=$?
code=1