我已经像这样设置了 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
,你会看到结果)