【问题标题】:What's the difference of redirect an output using ">", "&>", ">&" and "2&>"?使用“>”、“&>”、“>&”和“2&>”重定向输出有什么区别?
【发布时间】:2011-01-20 15:46:07
【问题描述】:

使用>&>>&2&> 重定向输出有什么区别?

【问题讨论】:

标签: linux shell unix scripting


【解决方案1】:
  • >stdout 重定向到文件
  • 2>& 将文件句柄“2”(几乎总是stderr)重定向到其他文件句柄(通常写为2>&1,它将stderr 重定向到与stdout 相同的位置)。
  • &>>&stdoutstderr 都重定向到一个文件。它通常写成&>file(或>&file)。它的功能与>file 2>&1 相同。
  • 2> 将输出到文件句柄 2(通常是 stderr)重定向到文件。

【讨论】:

  • & 符号是否表示文件句柄,或者 & 到底是什么意思?
  • @Banjer:和号通常表示重定向将应用于多个文件句柄,但确切的语义取决于它的用法。
  • 我更喜欢 > 为标准错误重定向标准输出和 2> 并避免 &
  • @mipadi see here。简而言之,>& 有一个文件 descriptor 的右手参数和一个可选的左手描述符。而&> 有一个右手文件 name 并且没有可选的左手文件。 (两个操作员都可以有一个命令作为左手)。您的声明“2&> 重定向文件句柄 2[...]”是错误的,因为 2 在语法上是命令的一部分
【解决方案2】:

1>(或>)用于标准输出,即命令的输出。 2> 用于stderr,命令的错误输出。

This page 有点罗嗦,但对不同的命令组合都有很好的解释和示例。

【讨论】:

    猜你喜欢
    • 2012-10-29
    • 2019-11-12
    • 2013-05-27
    • 2016-05-20
    • 2013-10-05
    • 2019-04-01
    • 2018-08-02
    • 1970-01-01
    相关资源
    最近更新 更多