代码之家  ›  专栏  ›  技术社区  ›  Ankur

猛击猫管据称行为不端

  •  0
  • Ankur  · 技术社区  · 2 年前

    在下面,我提出 echo向stderr写信 ; 那就是 传给猫 ,它有两个输出流 已连接到/dev/null .

    $ echo something 1>&2 | cat 2>&1 >/dev/null
    something
    

    总而言之,不应该打印任何内容。事实证明, 某物 还是会被打印出来!

    有人能解释一下这里发生了什么吗?泰。

    1 回复  |  直到 2 年前
        1
  •  1
  •   Mime    2 年前

    当您将输出写入 stderr ,它显示输出。如果你愿意写信给 stdout ,它不会显示输出。 这张来自维基百科关于管道的文章的图片很好地解释了这一点

    Pipeline Flow from wikipedia

    有关更多信息,请阅读 Wikipedia article 关于Linux中的管道。