在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