Bash
為什麼 2>/dev/null 不起作用?
我想在我的腳本開始時詢問使用者 sudo 密碼,然後在執行腳本的其餘部分之前測試此密碼是否正確。
所以在搜尋了一段時間之後,我得到了這個測試腳本:
SUDO_PWD=whatever sudo -k # <- So I can test it echo $SUDO_PWD | sudo -Svp '' 2>/dev/null sudo_response=$(SUDO_ASKPASS=/bin/false sudo -A whoami @>/dev/null) if [ "$sudo_response" = "root" ]; then echo "sudo" else echo "no sudo" fi
但是即使使用 @>/dev/null 重定向,這兩條消息也會出現在控制台中。為什麼 ?
如果你不想有任何輸出(即沒有標準輸出和沒有錯誤),你需要使用這樣的重定向:
your_command > /dev/null 2>&1
僅針對錯誤:
cmd > /dev/null
並且只有標準輸出:
cmd 2> /dev/null