AFAICT, weder die Manpage für GNU grep
noch info grep
, legt dar, was es --color=auto
bedeutet.
Ich muss einer der wenigen Menschen auf dem Planeten sein, für die die Bedeutung dieser Option nicht sofort offensichtlich ist.
Ich vermute, dass --color=auto
" irgendwo dazwischen ist" --color=never
und --color=always
, aber das lässt immer noch zu viel nicht spezifiziert.
less -R
, können Sie die Hervorhebung von Übereinstimmungen erhalten, müssen jedoch angeben--color=always
, dass grep verwendet werden soll, damit es funktioniert.Da
grep
es sich um ein GNU-Programm handelt, könnte eine andere Option darin bestehen, sich den Quellcode anzusehen.Intern testet grep das
static int color_option
entweder auf0
,1
oder2
.0
Verwenden Sie niemals farbige Ausgaben1
Verwenden Sie immer Farben2
Verwenden Sie Farben nur, wenn Sie auf einem Terminal druckenWenn Sie nun
--color=auto
grep als Argument in Ihrer CLI übergeben, wird die Variable interncolor_option
auf gesetzt2
.Wenn
color_option
gleich,2
grep
wird weiterSTDOUT
geprüft , ob eine Verbindung zu einem Terminal besteht oder das vom Benutzer deaktivierte eingefärbte Outpit übershell environment variables
. Wenn die erstere zutrifft und eine farbige Ausgabe zulässig ist,grep
fahren Sie mit der Bewertung fort, welche Farben verwendet werden sollen, und drucken Sie sie schließlichCLI
in Farbe aus.Quelle: (grep 2.21)
quelle