2015-11-01 25 views

回答

3
if ! type gedit vim &>/dev/null; then 
    echo "Installing programs" 
    #code 
fi 

測試命令,[的目的,是設置一個退出狀態取決於一些條件,如文件的存在或兩個字符串的平等。在這裏不需要,因爲type本身設置了一個有用的退出狀態。

此外,請注意,您可以指定多個名稱作爲參數type。只有找到所有名字,它纔會返回零退出狀態。

&>/dev/null os的目的是將所有類型的輸出(stdout和stderr)發送到/dev/null。如果你真的想看到它的輸出,那麼刪除重定向。

+1

類型的把戲。非常感謝! – denedimolmuyor

+0

請注意'&>'重定向是一種在所有shell中都不會被遵守的bashism。事實上,bash的行爲可以說不符合sh標準,並且應該通過異步運行cmd來解釋'cmd> file',然後截斷文件(因爲它被破折號解釋)。要可移植重定向,請使用'cmd>/dev/null 2>&1' –