如果指定no,grep --color的默认颜色行为是什么?
grep 手册页声明:
--color、--colour用转义序列包围匹配(非空)字符串、匹配行、上下文行、文件名、行号、字节偏移量和分隔符(用于字段和上下文行组),以便在终端上显示它们的颜色。... 当isnever、always或auto时。
grep --color的默认设置是否变为:
grep --color=auto或
grep --color=always还是取决于实现和平台?
在我用GNU grep 2.16对Ubuntu 14.04进行的测试中:
echo "foo bar" | \grep --color foofoobar的结果
echo "foo bar" | \grep --color foo | \grep --color bar结果在foobar中,因此似乎grep --color=auto在这里有效。然而,我还没有在Windows或Mac上测试这一点;我不知道这种行为是否是通用的。
这个默认的for与ls --color略有不同,ls的手册页声明:
当默认为
always或可以是never或auto时,将输出着色。
在这里,失踪时的行为是显式的。
发布于 2018-11-06 16:54:47
它默认为auto。
grep --color和编写--color=auto是一样的。
这似乎缺乏文档化,或者他们认为简单的--color不受欢迎,但是从测试和它的源代码都可以看出这一点:
case COLOR_OPTION:
if (optarg)
{
if (!strcasecmp (optarg, "always") || !strcasecmp (optarg, "yes")
|| !strcasecmp (optarg, "force"))
color_option = 1;
else if (!strcasecmp (optarg, "never") || !strcasecmp (optarg, "no")
|| !strcasecmp (optarg, "none"))
color_option = 0;
else if (!strcasecmp (optarg, "auto") || !strcasecmp (optarg, "tty")
|| !strcasecmp (optarg, "if-tty"))
color_option = 2;
else
show_help = 1;
}
else
color_option = 2;
break;注意,缺少optarg会导致与auto或tty相同的结果。
https://unix.stackexchange.com/questions/480172
复制相似问题