簡體   English   中英

重定向所有命令的bash輸出和錯誤

[英]redirect bash output and error for all commands

如何將bash上執行的所有命令重定向到/ dev / null?

很明顯,對於我們必須做的命令:

command > /dev/null  2>&1

所有將要執行的命令怎么樣?

只需啟動一個新shell:

bash >/dev/null 2>&1

現在你可以輸入命令blind :)如果你想離開那個模式類型: exit

但盲目輸入命令通常不是你想要的。 所以我建議創建一個像script.sh這樣的文本文件,將命令放在其中:

command1 foo 
command2 bar

而不是使用以下方式執行:

bash script.sh >/dev/null 2>&1

該腳本中所有命令的輸出現在將重定向到/ dev / null

在沒有命令的情況下使用exec

exec > /dev/null 2>&1

正如hex2mgl指出的那樣,如果你在交互式shell中執行此操作,則甚至不會再看到提示符,因為shell會將其打印到標准錯誤。 我認為這是用於腳本,因為忽略來自交互式運行的命令的所有輸出沒有多大意義:)

對於腳本或其他實際目的,對命令進行分組是一個很好的解決方案。 查看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.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM