在shell腳本中,1 is file descriptor for standard output
和2 is for standard error
。現在,由於這兩點都指向了什麼是使用 2>&1
。他們不是已經指向同一個設備嗎?2>&1在shell腳本中的用途是什麼
-1
A
回答
3
簡短的回答是要重定向到stderr
這樣stdout
你寫FD2
以及對FD1
正常輸出寫入FD1
兩個錯誤消息。 (FD =文件描述符)。它通常允許您捕獲要保存在日誌文件中的錯誤消息的輸出等。否則,只有通過將stdout
重定向到日誌才能捕獲這些錯誤消息。
進行了簡短的背景,你的shell有3個,涵蓋基本的閱讀和寫作衆所周知的文件描述符:
- 標準輸入(在輸入緩衝區)
- 標準輸出(你的正常輸出描述符)
- stderr(你的正常錯誤描述符)
當您讀取或寫入時,幾乎任何編程語言(包括您的shell)都使用這些常用文件描述符來管理輸入/輸出。在您的shell中,您可以重定向或合併stdout
和stderr
的輸出。一般格式爲:
m > &n ## where n & m are 1, 2
您可以組合,例如,無論從任何命令stdout
和stderr
到一個文件:
./someprogram > myfile 2>&1
這基本上說,「採取從someprogram
輸出上stdout
重定向到myfile
而包括stdout
stderr
。
有幾個很好的參考,一個是BASH Programming - Introduction HOW-TO: All about redirection
注意:請確保您明白重定向可以發生在臨時(每個命令的基礎上),或者可以使用exec
爲腳本範圍設置。
相關問題
- 1. shell腳本中`$ [``的用途是什麼?
- 2. &在shell腳本中的確切用途是什麼?
- 3. 在Linux shell腳本中,'x = $ {1:3:1}'是什麼意思?
- 4. 可移植shell腳本的用途是什麼?
- 5. 這行「BUILD_TARGET = $ {1:-none}」是什麼意思在shell腳本中?
- 6. 在shell腳本中,。[!。] *是什麼意思?
- 7. Shell腳本:shell腳本中的-z是什麼意思?
- 8. 什麼是$?shell腳本中的WORK?
- 9. shell腳本中的##是什麼意思
- 10. 什麼是shell腳本中的DEFINE
- 11. 什麼是shell腳本中的$ APPHOME?
- 12. 在shell腳本中,> 1 ../log/ orientdb.log和1 >> ../ log/orientdb.log是什麼意思?
- 13. 是什麼〜在Linux shell腳本$
- 14. 什麼是在這個shell腳本
- 15. 是什麼意思〜在unix Shell腳本
- 16. 什麼呢在shell腳本
- 17. HTML中腳本元素的charset屬性的用途是什麼?
- 18. 是什麼$?在shell腳本中意味着什麼?
- 19. 什麼是此行的shell腳本做
- 20. 這個shell腳本是做什麼的?
- 21. Shell:這個腳本是做什麼的?
- 22. 「who | grep $ 1」命令在shell腳本中做了什麼?
- 23. 在shell腳本中這意味着什麼? $ {1 + 「$ @」}?
- 24. 此腳本中-e標誌的用途是什麼?
- 25. package.json中腳本部分的用途是什麼?
- 26. 在shell中,「2>&1&」是什麼?
- 27. $是什麼?和$#代表Shell腳本?
- 28. 什麼是shell腳本命令從GitHub
- 29. '$?'是什麼意思是在shell腳本中?
- 30. 從shell腳本到cshell腳本的語法更改是什麼?
http://stackoverflow.com/questions/818255/in-the-shell-what-does-21-mean?rq=1 –
歡迎來到Stack Exchange,請看看http://stackoverflow.com /幫助/詢問並做適當的研究,以便做有用的問題 – Javier