如何解决bash 和 zsh:>&1 不会将 stderr 输出重定向到 stdout 但 2>&1 会吗?
ffmpeg 倾向于将错误输出到 &2 或 stderr,因此我可以将其重定向到 &1 或 stdout。
但是,我注意到使用 2>&1
和 >&1
进行重定向之间存在奇怪的区别。我认为后者会将 一切 重定向到 &1,或者这是一个错误?
示例:
ffmpeg --help | grep version
还显示了一些不包含“版本”的行,显然这是 ffmpeg 发送到 &2 的内容。
下一步:
ffmpeg --help 2>&1 | grep version
按预期工作:它只显示包含“版本”的几行。
然而:
ffmpeg --help >&1 | grep version
没有按预期工作,我得到与上面第一个示例相同的输出(没有重定向的那个)。
我在这里遗漏了什么?
请注意,这与 ffmpeg 无关,我只是以 ffmpeg 为例,因为它倾向于向 stdout 和 stderr 输出不同的内容。
附言我使用的是 macOS 10.15.6 Catalina,在 zsh 和 bash 中也会出现相同的行为。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。