簡體   English   中英

如何禁止此Shell命令的輸出

[英]How do I suppress output from this Shell command

為什么這個命令行中的重定向操作顯然被bash忽略了? 我的目標是將標准錯誤重定向到標准輸出,然后將整個批次輸入空白。

( cd ../src/ && python -m SimpleHTTPServer 8000 2>&1 > /dev/null ) &

我在一些靜態Web內容上運行SimpleHTTPServer,以便wget可以檢查它是否有死鏈接。 但是,我不希望看到來自服務器的錯誤(對失敗頁面的請求),因為wget日志文件提供了我需要的所有信息。

不過,當我跑這個......

( cd ../log/ && wget --quiet --spider --recursive -o spider.log http://localhost:8000/ 2>&1 > /dev/null )

...在后台運行的原始SimpleHTTPServer命令繼續噴出有關失敗的資源請求的標准錯誤報告,如...

127.0.0.1 - - [28/May/2013 17:22:31] "GET /technology/actuator.html HTTP/1.1" 200 -
127.0.0.1 - - [28/May/2013 17:22:31] code 404, message File not found

首先,stdout(1)和stderr(2)都指向您的終端。

然后,您將stderr重定向到stdout指向的任何內容。 (這是終端。)

然后將stdout重定向到/dev/null 但斯特德爾仍然指向終端。

你可以反過來做>/dev/null 2>&1 :這樣你首先將stdout重定向到/dev/null ,然后將stderr重定向到相同的。

Bash為此提供了簡寫&>/dev/null

使用&>/dev/null來壓縮所有內容。

暫無
暫無

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

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