Wenn grep o
eine Farbausgabe erzeugt wird, handelt es sich entweder grep
um einen Alias für grep --color=auto
oder grep --color=always
(oder möglicherweise um mehrere Optionen) oder GREP_OPTIONS
um einen Wert, der --color=auto
oder enthält --color=always
. Da $GREP_OPTIONS
es leer ist, muss es der Alias sein.
Da grep o | less -R
keine Farben angezeigt werden, muss der Alias zu grep --color=auto
(eine sinnvolle Wahl) sein. Mit dem Alias grep
erhält der Befehl immer die --color
Option in der Befehlszeile, und dies hat Vorrang vor der Umgebungsvariablen.
Wenn Sie die Umgebungsvariable verwenden möchten, entfernen Sie die Aliasdefinition aus Ihrem ~/.bashrc
oder für einen Sitzungslauf unalias grep
. Sie können ersetzen alias grep='grep --color=auto'
durch export GREP_OPTIONS='--color=auto'
: Sie haben im Wesentlichen die gleiche Bedeutung, außer dass:
- Das Setzen
GREP_OPTIONS
auf einen anderen Wert überschreibt nur den letzteren.
- Der Alias wird nur aktiviert, wenn Sie
grep
über eine interaktive Shell ausgeführt werden. Die Einstellung GREP_OPTIONS
gilt auch, wenn grep
sie über Skripts und andere Anwendungen ausgeführt wird.
Niemals --color=always
oder die meisten anderen Optionen eingeben GREP_OPTIONS
: Es würde viele Programme beschädigen, die die Ausgabe von analysieren grep
. --color=auto
ist über die einzig sichere Option zu setzen GREP_OPTIONS
. Verwenden Sie für alles andere den Alias. Zukünftige Versionen von GNU grep werden aus diesem Grund die Unterstützung für die Option einstellen.
Beachten Sie, dass die Aliasdefinition in ~/.bashrc
(es ist eine Shell-Einstellung), während die Umgebungsvariablendefinition in ~/.profile
(es ist eine Sitzungseinstellung) eingeht. Siehe Gibt es eine „Bashrc“ entsprechende Datei von allen Schalen lesen?
Wenn Sie den Befehl ohne Alias nur einmal ausführen möchten, führen Sie ihn \grep
stattdessen aus grep
( wenn Sie einen beliebigen Teil des Namens angeben, wird die Alias-Suche umgangen).
grep v3.1
beschwert sich lautstark überGREP_OPTIONS
jeden Aufruf:grep: warning: GREP_OPTIONS is deprecated; please use an alias or script