问题描述
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 (将#修改为@)