2016-05-10 41 views
1

我正在寫一個bash腳本來運行ruby命令,它需要一些寶石。如果安裝了寶石我檢查,並像這樣安裝它:沉默寶石列表控制檯輸出

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

這個偉大的工程,除了一個事實,那就是輸出truefalse。查看幫助頁面,我認爲添加q選項是爲了使此輸出無效,但我可能是錯的。

如何去抑制truefalse輸出,只是採取行動呢?

+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