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=alwaysgrep使其起作用。