【问题标题】:Bash: what does 2>&1 mean? [duplicate]Bash:2>&1 是什么意思? [复制]
【发布时间】:2014-04-08 07:54:50
【问题描述】:

见过

2>&1

在 bash 命令的末尾。这是什么意思?是某种输出重定向吗?

谢谢!

【问题讨论】:

    标签: bash command-line command


    【解决方案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

      【讨论】:

        猜你喜欢
        • 2016-12-10
        • 2016-08-18
        • 2019-10-29
        • 1970-01-01
        • 1970-01-01
        • 2022-12-16
        • 2018-06-17
        • 1970-01-01
        • 2012-04-26
        相关资源
        最近更新 更多