Answers:
规则与相同,在中将ls
其记录下来做得更好man ls
。报价单:
默认情况下和
--color = never 都禁用使用颜色来区分文件类型。使用--color = auto,仅当
标准输出连接到终端时,ls才会发出颜色代码。LS_COLORS环境
变量可以更改设置。使用dircolors命令进行设置。
因此,它将使该命令仅在将输出输出到终端时添加颜色格式,而不是在输出到管道时添加颜色格式,因为使用管道的程序可能无法很好地处理颜色格式。
由于grep
是GNU程序,因此另一个选择可能是查看源代码。
内部grep的测试static int color_option
对于任何一个0
,1
或2
。
0
永远不要使用彩色输出1
总是使用颜色2
仅在打印到终端时使用颜色现在,当您--color=auto
在CLI上将grep作为参数传递时,它将在内部将变量设置color_option
为2
。
如果color_option
相等,2
grep
则进一步测试是否STDOUT
通过链接到终端或用户禁用彩色出口shell environment variables
。如果前一种是正确的并且允许彩色输出,grep
则继续评估应使用哪种颜色,最后最终打印出您CLI
的彩色。
来源:(grep 2.21)
grep.c line 306, 2374, 2440
colorize-posix.c line 36
man isatty
less -R
,则可以突出显示匹配项,但需要指定--color=always
grep使其起作用。