gpt4 book ai didi

bash - 为什么描述符重定向看起来不一致?

转载 作者:行者123 更新时间:2023-11-29 09:22:23 24 4
gpt4 key购买 nike

  • 我们大多数人都知道要将 STDERR 重定向到 STDOUT,我们会做 2>&1
  • 我们还知道使用“>”的文件重定向和使用“|”的进程重定向

我一直想知道的是关于以上两者的结合

如果您想将 prog1 的 STDERR 和 STDOUT 都重定向到 prog2,您可以放置​​ 2>&1|prog2 之前管道。另一方面,如果您将 prog1 的 STDERR 和 STDOUT 重定向到文件 (file.txt),则 2>&1> file.txt 之后.

所以我知道怎么做,我只是想知道为什么要这样做。对我来说这似乎不一致,但我可能以错误的方式看待它

谢谢

最佳答案

它们是按顺序处理的。

如果你这样做

progname 2>&1 1>out.txt

这会将 stderr 从程序 转移到程序标准输出的当前目的地,这是 shell 的标准输出流,并且转移程序的标准输出到 out.txt。

如果你这样做

progname 1>out.txt 2>&1 

将程序的标准输出转移到 out.txt,然后将标准错误从程序转移到程序标准输出的当前目的地,即 out.txt .

关于bash - 为什么描述符重定向看起来不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5303935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com