2016-05-10 5 views
1

Я пишу скрипт bash для запуска команды ruby, и для этого требуется несколько драгоценных камней. Я проверяю, если установлен камень и установить его так:Silence gem list console output

if ! gem list rest-client -iq 
then 
    echo "Missing rest-client gem, installing now..." 
    gem install rest-client 
fi 

Это прекрасно работает, за исключением того, что есть выходы true или false исключением. Если посмотреть на страницы справки, я думаю, что добавление опции q будет отключено, чтобы отключить этот вывод, однако я могу ошибаться.

Как я могу подавить вывод true или false и просто воздействовать на него?

+1

Как всегда, вы можете скрыть стандартный вывод, перенаправив его на '/ DEV/null' -> 'gem list rest-client -iq>/dev/null && echo" yes "|| эхо "нет". – fedorqui

+0

Работал отлично, если вы хотите добавить свой комментарий в качестве ответа, я могу его принять. –

ответ

1

Как указано в комментариях, просто перенаправить stdout к /dev/null так, что он не показывает:

if ! gem list rest-client -iq >/dev/null 
#        ^^^^^^^^^^ 
then 
    echo "Missing rest-client gem, installing now..." 
    gem install rest-client 
fi