首页 > 解决方案 > 无法退出 bash 脚本中的行

问题描述

我正在编写一个脚本来启动一个应用程序,grep 为“服务器启动”这个词,退出然后执行下一个命令。但是在满足条件后它不会退出并执行下一个cmd。有什么帮助吗?

#!/bin/bash
application start; tail -f /application/log/file/name | \
while read line ; do
        echo "$line" | grep "Server startup"
        if [ $? = 0 ]
        then
           echo "application started...!"
        fi
done

标签: bash

解决方案


不要使用 Tail 的跟随标志

Tail 的跟随标志(例如-f)不会退出,并且会继续跟随文件,直到它接收到适当的信号或遇到错误条件。您将需要找到一种不同的方法来跟踪文件末尾的数据,例如watch,logwatch或使用logrotate. 使用的最佳工具很大程度上取决于日志数据的格式和频率。


推荐阅读