shell 中 2>&1 的使用

來源:互聯網
上載者:User

標籤:

一 相關知識1)預設地,標準的輸入為鍵盤,但是也可以來自檔案或管道(pipe |)。2)預設地,標準的輸出為終端(terminal),但是也可以重新導向到檔案,管道或後引號(backquotes `)。3) 預設地,標準的錯誤輸出到終端,但是也可以重新導向到檔案。4)標準的輸入,輸出和錯誤輸出分別表示為STDIN,STDOUT,STDERR,也可以用0,1,2來表示。5)其實除了以上常用的3中檔案描述符,還有3~9也可以作為檔案描述符。3~9你可以認為是執行某個地方的檔案描述符,常被用來作為臨時的中間描述符。  二 執行個體1)command 2>errfile : command的錯誤重新導向到檔案errfile。2)command 2>&1 | ...: command的錯誤重新導向到標準輸出,錯誤和標準輸出都通過管道傳給下個命令。3)var=`command 2>&1 : command的錯誤重新導向到標準輸出,錯誤和標準輸出都賦值給var。4)command 3>&2 2>&1 1>&3 | ...:實現標準輸出和錯誤輸出的交換。5)var=`command 3>&2 2>&1 1>&3`:實現標準輸出和錯誤輸出的交換。6)command 2>&1 1>&2 | ...     (wrong...) :這個不能實現標準輸出和錯誤輸出的交換。因為shell從左至右執行命令,當執行完2>&1後,錯誤輸出已經和標準輸出一樣的,再執行1>&2也沒有意義。  三 "2>&1 file"和 "> file 2>&1"區別1)cat food 2>&1 >file :錯誤輸出到終端,標準輸出被重新導向到檔案file。2)cat food >file 2>&1 :標準輸出被重新導向到檔案file,然後錯誤輸出也重新導向到和標準輸出一樣,所以也錯誤輸出到檔案file。  四 注意通常開啟的檔案在進程推出的時候自動的關閉,但是更好的辦法是當你使用完以後立即關閉。用m<&-來關閉輸入檔案描述符m,用m>&-來關閉輸出檔案描述符m。如果你需要關閉標準輸入用<&-; >&- 被用來關閉標準輸出。 五 同時輸出到終端和檔案copy source dest | tee.exe copyerror.txt 六 參考1)http://docstore.mik.ua/orelly/unix/upt/ch45_21.htm2)http://www.unix.com/shell-programming-scripting/34011-meaning-dev-null-2-1-a.html3)http://docstore.mik.ua/orelly/unix/upt/ch08_13.htm 感謝,Thanks! iTech出處:http://itech.cnblogs.com/本文著作權歸作者iTech所有,轉載請包含作者簽名和出處,不得用於商業用途,非則追究法律責任!

shell 中 2>&1 的使用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.