perl脚本只会打印tomcat版本

时间:2016-05-18 12:13:25

标签: perl shell tomcat

我试图在perl脚本中从命令中提取tomcat版本并运行以发出正则表达式部分。任何帮助将不胜感激。这是我的代码:

$tomcat_ver=`sh /usr/local/apache-tomcat-7.0.57/bin/version.sh`;
if($tomcat_ver=~ m/Server number: (.+)[0-9]$/s)
{
my $tomcat_version=$1;
print "$tomcat_version\n";

}

2 个答案:

答案 0 :(得分:2)

由于version.sh的输出与此类似:

sh /usr/local/apache-tomcat-7.0.57/bin/version.sh

Server version: Apache Tomcat/7.0.57
Server built:   Jul 2 2013 08:57:41
Server number:  7.0.57
OS Name:        Linux
OS Version:     2.6.32-042stab084.26
Architecture:   amd64
JVM Version:    1.7.0_21-b11
JVM Vendor:     Oracle Corporation

要使用的正则表达式是

m/Server number:\s*([0-9.]+)/

" /秒"意味着"。"应匹配" \ n"太。由于我们没有使用它,因此不需要修饰符。

答案 1 :(得分:1)

这个正则表达式也会这样做:

m/Server number: (.+)\n/)/

它将匹配,直到遇到新行字符。 为了保存它,将$ 1(预定义变量)分配给要存储版本信息的自定义变量。

修改

使用版本号修剪空格:

m/Server number:\s*(.+)\n/)/