bash - 无法退出 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
解决方案
不要使用 Tail 的跟随标志
Tail 的跟随标志(例如-f
)不会退出,并且会继续跟随文件,直到它接收到适当的信号或遇到错误条件。您将需要找到一种不同的方法来跟踪文件末尾的数据,例如watch
,logwatch
或使用logrotate
. 使用的最佳工具很大程度上取决于日志数据的格式和频率。
推荐阅读
- javascript - 为什么每次 React 渲染都会创建新对象?
- c# - Xamarin Forms Android WebView 文件上传不起作用
- api - 移动应用程序应该如何与 web api 交互?
- clang - clang 将 callExpr.getArg 类型转换为 decl
- javascript - 如何抓取由 javascript 填充的表?
- javascript - 反应道具给我错误:无法解构“道具”的属性“调度”,因为它是未定义的
- django - DetailView中的分页与上下文?[django]
- c# - EFCore、CodeFirst、多对多关系 - 我需要密钥吗?
- reactjs - 当 WiFi 重新打开时,React Native 的 NetInfo 未捕获
- mysql - 我正在尝试对示例电影数据库进行查询,但无法查明错误