Bash:2>&1 是啥意思? [复制]
Posted
技术标签:
【中文标题】Bash:2>&1 是啥意思? [复制]【英文标题】:Bash: what does 2>&1 mean? [duplicate]Bash:2>&1 是什么意思? [复制] 【发布时间】:2014-04-08 07:54:50 【问题描述】:见过
2>&1
在 bash 命令的末尾。这是什么意思?是某种输出重定向吗?
谢谢!
【问题讨论】:
【参考方案1】:短:它将所有在STDERR
上的输出重定向到STDOUT
。
>
是一个重定向运算符,它以最简单的形式将STDOUT
上的所有输出重定向到一个文件中。
test.sh > file
如果您在 >
前面加上一个数字,它将使用此特定文件描述符的输出 - 在您的示例中为 2。 1 是标准输出,2 是标准错误。
test.sh 2> file.err
会将描述符 2 = stderr 的所有输出重定向到文件。
如果您使用特殊符号 &1
而不是文件名,则输出不会写入新文件,而是写入具有给定编号的文件描述符,在本例中为 1。
所以:
test.sh 2>&1
从文件描述符 2 (stderr) 重定向到文件描述符 1 (stdout)
如果您想收集所有输出,无论它发生在哪里(stdout 或 stderr)以进行进一步处理,例如管道到另一个程序,这很有用。
【讨论】:
【参考方案2】:1 是标准输出。 2 是标准错误。
2>&1
只是将发送到 stderr 的所有内容指向 stdout。
您将获得有关此的更多信息:here
【讨论】:
以上是关于Bash:2>&1 是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章