无名[] 2022-12-27 20:35 采纳率: 23.8%
浏览 39
已结题

sell脚本如何读取日志文件最后一行并判断该行文本是否与字符串“started”相等

启动.sh脚本,会读取日志文件第一行,然后进行判断,现在需要读取日志文件里面的最后一行信息然后判断,对脚本了解一点点,请问一下各位该如何实现啊 ,我想用tail -n -1 log/server.log去直接获取最后一行的信息,但是如何赋值判断呢

start()
{ whlie ture 
            do
                  test -s $logFile
                  if test $? -eq 0
                   then
                    echo "the fiile log/server.log" is address"
                                                cat $logFile | while read line
                                                do
                                                        echo "the line is [$line]"
                                                        test "$line" = "started"
                                                        if test $? -eq 0
                                                                  then
                                                                  echo " $[NAME]" successfully!"
                                                      exit 0
                                                else
                                                       echo "$[NAME] Fail!"
                                                        exit 0
                                                fi
                                          done
                                      break
                          else
                                                      slepp 2
                                      continue
                           fi
        done
                              
}

以前的代码是这样

  • 写回答

1条回答 默认 最新

  • |__WhoAmI__| 2022-12-27 20:42
    关注

    可以使用 tail 命令来实现,例如:

    tail -n 1 log/server.log
    

    该命令会读取日志文件 log/server.log 的最后一行信息。

    然后可以将读取到的信息赋值给一个变量:

    last_line=$(tail -n 1 log/server.log)
    

    然后就可以使用该变量来进行判断了例如:

    if [ "$last_line" == "started" ]; then
        echo "$[NAME] successfully!"
    else
        echo "$[NAME] Fail!"
    fi
    

    在使用 tail 命令时,如果你想要读取倒数第二行,可以使用 tail -n 2,如果想要读取倒数第三行,可以使用 tail -n 3,以此类推。
    在使用 if 语句时,注意使用两个中括号,否则会报错。
    望采纳。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月5日
  • 已采纳回答 12月28日
  • 创建了问题 12月27日

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?