如何將在bash上執行的所有命令重定向到/ dev/null?所有命令的重定向bash輸出和錯誤
很明顯,一個命令我們必須做的:
command > /dev/null 2>&1
怎麼樣將進一步執行的命令?
如何將在bash上執行的所有命令重定向到/ dev/null?所有命令的重定向bash輸出和錯誤
很明顯,一個命令我們必須做的:
command > /dev/null 2>&1
怎麼樣將進一步執行的命令?
只需啓動一個新的shell:
bash >/dev/null 2>&1
現在你可以輸入命令盲目 :)如果你想離開這個模式類型:exit
但是鍵入命令盲目,一般不會有什麼你想。所以我建議在它創建像script.sh
一個文本文件,把你的命令:
command1 foo
command2 bar
,並使用比執行它:
bash script.sh >/dev/null 2>&1
在腳本中的所有命令的輸出中會被重定向至/ dev/null現在
對於腳本編寫或其他實際用途,對命令進行分組是個不錯的解決方案。檢查http://www.gnu.org/software/bash/manual/html_node/Compound-Commands.html它特別Any redirections (see Redirections) associated with a compound command apply to all commands within that compound command unless explicitly overridden.
使用exec
說沒有一個命令:
exec > /dev/null 2>&1
由於hex2mgl指出的那樣,如果你這樣做在一個交互的shell,你甚至不會看到你的提示了,因爲殼打印到標準錯誤。我認爲這是爲腳本設計的,因爲忽略交互式運行命令的所有輸出沒有多大意義:)
終端被阻止 – TheForbidden
它沒有被阻止;所有輸出(標準輸出和標準錯誤,包括您的提示)已被重定向到'/ dev/null',按要求。 – chepner
,如果我只想重定向錯誤輸出? – TheForbidden
bash?這是一個命令嗎? – TheForbidden
當然是。它會啓動一個新的'bash'外殼。 – hek2mgl
我得到這個: [1] 13407 慶典:2:沒有這樣的文件或目錄 1:未找到 [1] +出口127的bash 2>的/ dev/null的 – TheForbidden