Quel est le comportement de couleur par défaut pour grep --color si non [=QUAND ] est spécifié ?
La page de manuel de grep indique :
--color[=QUAND ],--color[=QUAND ]Entourez les chaînes correspondantes (non vides), les lignes correspondantes, les lignes de contexte,
les noms de fichier, les numéros de ligne, les décalages d'octets et les séparateurs (pour les champs et
les groupes de lignes de contexte) avec des séquences d'échappement pour les afficher en couleur
sur le terminal.
…
QUAND estnever,always, ouauto.
Est-ce que la valeur par défaut [=WHEN ] pour grep --color devenir :
grep --color=auto
ou
grep --color=always
ou cela dépend-il de la mise en œuvre et de la plate-forme ?
Dans mes tests sur Ubuntu 14.04 avec GNU grep 2.16 :
echo "foo bar" | grep --color foo
résultats dans foo bar , tandis que
echo "foo bar" | grep --color foo | grep --color bar
résultats dans foo bar , il semble donc que grep --color=auto est en vigueur ici. Je n'ai cependant pas testé cela sur Windows ou Mac; Je ne sais pas si ce comportement est universel.
Cette valeur par défaut pour [=WHEN ] est un peu différent de ls --color où la page de manuel pour ls indique :
--color[=QUAND ]colorie la sortie.
QUAND par défaut,alwaysou peut êtreneverouauto.
Ici, le comportement du WHEN manquant est explicite.
Réponse acceptée :
Il est par défaut sur auto .
grep --color revient à écrire --color=auto .
Cela semble être mal documenté, ou ils considèrent le simple --color obsolète, mais cela se voit à la fois dans les tests et dans son code source :
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;
Notez que l'absence d'un optarg donne le même résultat car il est égal à auto ou tty .