Shell 检查PEAR版本

Shell 检查PEAR版本,shell,stdout,pear,Shell,Stdout,Pear,我正在使用Chef编写服务器自动化脚本,需要检查PEAR包管理器的安装版本。命令行开关-V将详细的版本信息打印到控制台: PEAR Version: 1.9.0 PHP Version: 5.3.5-1ubuntu7.2ppa1~lucid Zend Engine Version: 2.3.0 Running on: Linux ubuntu-lucid-32-generic 2.6.32-33-generic #72-Ubuntu SMP Fri Jul 29 21:08:37 UTC 201

我正在使用Chef编写服务器自动化脚本,需要检查PEAR包管理器的安装版本。命令行开关
-V
将详细的版本信息打印到控制台:

PEAR Version: 1.9.0
PHP Version: 5.3.5-1ubuntu7.2ppa1~lucid
Zend Engine Version: 2.3.0
Running on: Linux ubuntu-lucid-32-generic 2.6.32-33-generic #72-Ubuntu SMP Fri Jul 29 21:08:37 UTC 2011 i686
但是,我无法隔离该结果的
1.9.0
部分并对其进行测试。pear脚本似乎没有打印到标准输出,因为重定向也不起作用:

$ pear -V > pear_version
PEAR Version 1.9.0
...
$ cat pear_version
$
如何捕获输出并将其传递给grep,以便只返回“1.9.0”

(假设您的shell是像bash这样的linux/unix变体)

我没有pear来测试,但是我猜丢失的版本信息将被发送到STDERR,所以试试吧

 pearVer=$(pear -V 2>&1 | sed '/^PEAR Version: /s///')
这只匹配以“PEAR Version”开头的行。's//'是'match the first expression and replace with'/'(nothing)的缩写

我希望这有帮助