Bash &燃气轮机;及&燃气轮机;产生不同的结果

Bash &燃气轮机;及&燃气轮机;产生不同的结果,bash,macos,unix,pipe,io-redirection,Bash,Macos,Unix,Pipe,Io Redirection,我正试图将命令的标准输出保存到输出文件output.txt 我不明白为什么当我使用&时一切都正常,当我使用时,一些奇怪的符号,如[0m[0;1;32m会随机出现在整个文件中 是什么原因造成的 我的调查表明,这些符号是终端颜色。但为什么我使用&>时它们会消失?它可能会检查stderr是否连接到终端,以及是否连接到终端,而不是使用颜色控制码。当使用&>重定向时,stdout和stderr都未连接到术语最后,所以没有使用颜色代码。它可能会检查stderr是否连接到终端,如果连接到终端,则会使用颜色控制

我正试图将命令的标准输出保存到输出文件
output.txt

我不明白为什么当我使用
&
时一切都正常,当我使用
时,一些奇怪的符号,如
[0m[0;1;32m
会随机出现在整个文件中

是什么原因造成的


我的调查表明,这些符号是终端颜色。但为什么我使用&>时它们会消失?

它可能会检查
stderr
是否连接到终端,以及是否连接到终端,而不是使用颜色控制码。当使用
&>
重定向时,
stdout
stderr
都未连接到术语最后,所以没有使用颜色代码。

它可能会检查
stderr
是否连接到终端,如果连接到终端,则会使用颜色控制代码。当使用
&
重定向时,
stdout
stderr
都没有连接到终端,因此没有使用颜色代码。

命令是什么?这些看起来像e ASCII转义序列(例如,在外壳中提供彩色输出),但我不知道为什么它们在一种情况下是可见的,而在另一种情况下是不可见的。是的,确切地说,我自己也意识到了这一点。这个命令是来自clang的ast dump,我不明白,为什么&>会设法过滤掉它。这些符号看起来像是用于着色输出的termcap转义码。当stdout是终端a时,命令有时会产生这样的着色输出当stdout不是终端(例如管道或光盘文件)时,nd还原为纯文本。&>重定向stdout和stderr,因此发生这种情况的原因有点令人困惑-正如@rghome所说,请指定该命令。重定向标准错误会影响标准输出?听起来有点不正确。该命令是什么?这些命令看起来像ASCII转义序列es(例如,在外壳中提供彩色输出),但我不知道为什么它们在一种情况下是可见的,而在另一种情况下是不可见的。是的,确切地说,我自己也意识到了这一点。这个命令是来自clang的ast dump,我不明白,为什么&>会设法过滤掉它。这些符号看起来像是用于着色输出的termcap转义码。当stdout是终端a时,命令有时会产生这样的着色输出当stdout不是终端(例如管道或光盘文件)时,nd还原为纯文本。&>重定向stdout和stderr,因此这是一个有点令人困惑的原因-正如@rghome所说,请指定命令。重定向标准错误会影响标准输出?听起来有点不正确。我也假设这是一种“证明”将执行
command
command 2>/dev/null
。第一次调用应该有彩色输出,但第二次不应该。我也假设这一点。一种“证明”是执行
command
command 2>/dev/null
。第一次调用应该有彩色输出,但第二次调用没有。