在shell代码脚本中将stderr重定向到stdout(2>&1)是什么意思?



我知道2>&1使您可以将stderr重定向到任何地方stdout

  • 但是,在此外壳代码中,&是什么意思?不是附加操作员吗?
  • 是否可以将所有描述符传输到Stdout?

绝对精确 - 操作员>&确实在操作员之前将描述符合并到操作员之后的描述符中。

因此,如上所述,操作员是>&,询问&的意思是没有意义的。

在您的第二个问题上 - 我认为一个操作员不可能/您需要重复每个操作。

控制台应用程序的标准/默认描述符是:

0 - stdin
1 - stdout
2 - stderr

任何其他可以通过应用程序定义的...

编写'控制台'程序时,您有2个不同的流将输出发送到,stdout和sterr。

Stout用于普通输出,Sterr将打印错误消息,默认情况下两者都在控制台上打印。什么是"输出"和什么是"错误",无论如何,如果要重定向到文件,则可以将输出和错误重定向到两个不同的文件 - 但是,如果您希望两者都在同一文件上(或管道)最好的选择是将stderr重定向到Stdout,然后将Stdout转换为文件

有关ampersand的含义,请参见http://en.wikipedia.org/wiki/ampersand#unix_shells

相关内容

  • 没有找到相关文章

最新更新