Проверка версии PEAR - PullRequest
       8

Проверка версии PEAR

4 голосов
/ 13 декабря 2011

Я пишу сценарий автоматизации сервера, используя 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 не печатает в STDOUT, так как перенаправление тоже не работает:

$ pear -V > pear_version
PEAR Version 1.9.0
...
$ cat pear_version
$

Как мне перехватить вывод и передать его в grep, чтобы я мог вернуть только "1.9.0"?

1 Ответ

2 голосов
/ 13 декабря 2011

(при условии, что ваша оболочка представляет собой вариант linux / unix, такой как bash)

У меня нет груш для тестирования, но я думаю, что информация о недостающей версии собирается в STDERR, поэтому попробуйте

 pearVer=$(pear -V 2>&1 | sed '/^PEAR Version: /s///')

Это соответствует только строкам, которые начинаются с 'PEAR Version'. 's ///' - сокращение, 'соответствует первому выражению и замените его на' // '(ничего).

Надеюсь, это поможет.

...