更改 TERM 变量和颜色输出

更改 TERM 变量和颜色输出

我已经像这样设置了 TERM 环境变量

export TERM=linux-m

切换到非彩色术语。现在当我发出时,ls -l我确实没有得到彩色输出,但是当我使用例如:grep --color abc 1.txt它仍然返回彩色输出?为什么设置变量会影响ls命令而不影响grep

答案1

来自ls手册页:

使用 --color=auto 时,ls 仅当标准输出连接到终端时才会发出颜色代码。

因此,如果--color设置为:

  • always:即使输出重定向到文件,ls 也会发出颜色;
  • auto:如果输出是终端,则 ls 会发出颜色的代码,例如,它不会被重定向到文件或管道,即使终端没有颜色,因为没有明确说明它取决于终端功能。

考虑到 grep,我假设行为是相同的(尝试grep --color=auto... | less一下grep --color=always ... | less,你会看到结果)

相关内容