【发布时间】:2019-06-03 02:39:49
【问题描述】:
我正在尝试将命令的标准输出保存到输出文件output.txt
我不明白为什么当我使用&> 时一切正常,而当我使用> 时,一些奇怪的符号(如[0m[0;1;32m)随机出现在整个文件中。
是什么原因造成的?
我的调查表明,这些符号是终端着色。但是为什么当我使用 &> 时它们会消失?
【问题讨论】:
-
命令是什么?
-
这些看起来像 ASCII 转义序列(例如,在 shell 中提供彩色输出),但我不确定为什么它们在一种情况下可见,而在另一种情况下不可见。
-
是的,我自己也意识到了这一点。该命令是来自 clang 的 ast-dump,我不明白,为什么 &> 设法将其过滤掉
-
这些符号看起来像是用来着色输出的 termcap 转义码。当 stdout 是终端时,命令有时会产生这种彩色输出,而当 stdout 不是终端(例如管道或磁盘文件)时,命令会恢复为纯文本。 &> 重定向 stdout 和 stderr 所以这有点令人困惑 - 正如@rghome 所说,请指定命令。
-
重定向标准错误会影响标准输出?这听起来有点坏了。
标签: bash macos unix pipe io-redirection