Wenn grep oeine Farbausgabe erzeugt wird, handelt es sich entweder grepum einen Alias für grep --color=autooder grep --color=always(oder möglicherweise um mehrere Optionen) oder GREP_OPTIONSum einen Wert, der --color=autooder enthält --color=always. Da $GREP_OPTIONSes leer ist, muss es der Alias sein.
Da grep o | less -Rkeine Farben angezeigt werden, muss der Alias zu grep --color=auto(eine sinnvolle Wahl) sein. Mit dem Alias greperhält der Befehl immer die --colorOption in der Befehlszeile, und dies hat Vorrang vor der Umgebungsvariablen.
Wenn Sie die Umgebungsvariable verwenden möchten, entfernen Sie die Aliasdefinition aus Ihrem ~/.bashrcoder 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_OPTIONSauf 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_OPTIONSgilt auch, wenn grepsie über Skripts und andere Anwendungen ausgeführt wird.
Niemals --color=alwaysoder die meisten anderen Optionen eingeben GREP_OPTIONS: Es würde viele Programme beschädigen, die die Ausgabe von analysieren grep. --color=autoist ü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 \grepstattdessen aus grep( wenn Sie einen beliebigen Teil des Namens angeben, wird die Alias-Suche umgangen).
grep v3.1beschwert sich lautstark überGREP_OPTIONSjeden Aufruf:grep: warning: GREP_OPTIONS is deprecated; please use an alias or script