在bash shell脚本中,搜索文件的最后10行中的单词。如果发现做了一个动作&否则做另一个动作

时间:2015-11-20 08:56:17

标签: linux bash shell grep tail

在bash shell脚本中,搜索文件的最后10行中的单词。如果找到,请执行操作或执行其他操作

  

我必须在log.out中搜索“Server started”,如果找到,需要   执行以下命令

service httpd start

2 个答案:

答案 0 :(得分:1)

这是你可以做到的:

result=`tail --lines=10 log.out | grep "Server started"`
if [[ "$result" == ""]]; then
   ...
else
   ...
fi

答案 1 :(得分:0)

你可以做的是tailgrep,然后检查命令的返回码。如果它是0,那就意味着grep找到了一些东西,做你的逻辑:

  • 为grep设置-q,以便不打印任何匹配项
  • tail默认打印最后10行,您也可以为行号添加-n选项。
  • 我们可以使用&&

将它们组合在一起,我们有一行:

grep -q 'Server started' <(tail -n10 log.out) && service httpd start