我见过
2>&1
在bash命令结束时。这是什么意思?它是某种输出重定向吗?
谢谢!
答案 0 :(得分:3)
简短:它会将STDERR
上的所有输出重定向到STDOUT
。
>
是一个重定向运算符,它将以最简单的形式将STDOUT
上的所有输出重定向到文件中。
test.sh > file
如果您在>
前加上一个数字,它会使用此特定文件描述符的输出 - 在您的示例中为2。 1是stdout,2是stderr。
test.sh 2> file.err
将描述符2 = stderr的所有输出重定向到文件。
如果使用特殊符号&1
而不是文件名,则输出不会写入新文件,而是写入具有给定数字的文件描述符,在本例中为1。
所以:
test.sh 2>&1
从文件描述符2(stderr)重定向到文件描述符1(stdout)
如果您想要收集所有输出(无论它发生在哪里(stdout或stderr)进行进一步处理,如管道输入另一个程序,这很有用。
答案 1 :(得分:0)