web-dev-qa-db-fra.com

Couleurs manquantes lors de l'appel de grep via un script

Voici un wrapper simple pour grep permettant de rechercher dans un référentiel Git. Pour une raison quelconque, les couleurs ont disparu lorsque grep est appelé via un script bash. Comment je le répare?

enter image description here

J'utilisais cette commande

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

Lorsque vous exécutez grep dans un terminal, les couleurs s'affichent à cause de cet alias par défaut dans votre ~/.bashrc

alias grep='grep --color=auto'

~/.bashrc provient uniquement de coques interactives. Lorsque vous exécutez un script, celui-ci s'exécute dans un shell non interactif. L'alias n'est donc pas disponible.

Pour conserver la couleur, ajoutez l'indicateur --color=auto à la commande grep du script:

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