Farben fehlen beim Aufruf von grep über ein Skript

Farben fehlen beim Aufruf von grep über ein Skript

Hier ist ein einfacher Wrapper für grep zum Durchsuchen eines Git-Repositorys. Aus irgendeinem Grund sind die Farben verschwunden, wenn grep über ein Bash-Skript aufgerufen wird. Wie behebe ich das?

Bildbeschreibung hier eingeben

Ich habe diesen Befehl verwendet

grep $1 . -R --exclude-dir=.git --line-number

Antwort1

Wenn Sie es grepin einem Terminal ausführen, werden Farben angezeigt, weil dieser Standardalias in Ihrem~/.bashrc

alias grep='grep --color=auto'

~/.bashrcwird nur von interaktiven Shells bezogen. Wenn Sie ein Skript ausführen, wird es in einer nicht interaktiven Shell ausgeführt, sodass der Alias ​​nicht verfügbar ist.

Um die Farbgebung beizubehalten, fügen Sie dem Befehl im Skript das --color=autoFlag hinzu:grep

grep $1 . -R --exclude-dir=.git --line-number --color=auto

verwandte Informationen