我正在尝试检查安装的Nginx版本是否与配置文件中定义的版本相同.
我的代码:
#check version
command="Nginx -v"
Nginxv=$( ${command} 2>&1 )
Nginxvcutted="echo ${Nginxv:21}"
Nginxonpc=$( ${Nginxvcutted} 2>&1 )
if [ $Nginxonpc != ${Nginx_VERSION} ]; then
echo "${error} The installed Nginx Version $Nginxonpc is DIFFERENT with the Nginx Version ${Nginx_VERSION} defined in the config!"
else
echo "${ok} The Nginx Version $Nginxonpc is equal with the Nginx Version ${Nginx_VERSION} defined in the config!"
fi
这段代码可以工作,但是我遇到了一个问题:
如果版本号更改,则剪切号(在此示例中为Nginxv:21)不再适合.
例:
Nginx-1.13.12 vs Nginx-1.15.0 (13 vs 14 chars)
有什么办法可以使它正常工作,而不会造成麻烦?
解:
我改编了@Mohammad Saleh Dehghanpour的解决方案,它的工作就像一个魅力:
command="Nginx -v"
Nginxv=$( ${command} 2>&1 )
Nginxlocal=$(echo $Nginxv | grep -o '[0-9.]*$')
echo $Nginxlocal
1.15.0
解决方法:
您可以使用正则表达式而不是cut.例如,要从Nginx-1.15.0中提取版本号,请使用:
回声’Nginx-1.15.0’| grep -o'[0-9.] * $’
输出:1.15.0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。