2015-05-21 20 views
3

我使用git來管理一些自定義包。如果軟件包不在第一個倉庫中,我想運行另一個嘗試另一個倉庫的命令。我不需要告訴用戶這種情況正在發生。用戶不需要知道git是否存在。沉默混帳(沒有錯誤,沒有輸出,不說一個字)

if ! git clone [email protected]:username/repo directory -q 
     then 
      #do something else 
     fi 

混帳仍然在打印即使-q控制檯一個致命的錯誤。

那麼,我該如何沉默小Git?

+7

也許'>的/ dev/null的2> &1' – bishop

+0

什麼是錯誤? – axiac

+0

@bishop是的,這樣做。乾杯。如果你不介意的話,把它作爲別人的答案。 – offthegrass

回答

8

兩種方式:

git clone [email protected]:username/repo directory > /dev/null 2>&1 - 舊的慶典

和:

git clone [email protected]:username/repo directory &> /dev/null - (按下面的鏈接上面第4版)新的bash

詳情瞭解I/O Redirection in Bash。 基本上你在這裏做的是將stdoutstderr重定向到/dev/null,這是「無處」。

+0

哪個是最兼容的? – offthegrass

+1

「舊版bash」版本是適用於所有shell的便攜版本。 「更新的bash」版本依賴於一個根本不可用的擴展名:我不知道bash在POSIX模式下是否禁用它,但即使它不是,它也應該是,未來版本可能。 – hvd

+1

是的,**更老的**版本更便攜/兼容! – Paul