Цвета отсутствуют при вызове grep через скрипт

Цвета отсутствуют при вызове grep через скрипт

Вот простая оболочка для grep для поиска по репозиторию Git. По какой-то причине цвета исчезают, когда grep вызывается через скрипт bash. Как это исправить?

введите описание изображения здесь

Я использовал эту команду

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

решение1

Когда вы работаете grepв терминале, он показывает цвета из-за этого псевдонима по умолчанию в вашем~/.bashrc

alias grep='grep --color=auto'

~/.bashrcтолько интерактивными оболочками. Когда вы запускаете скрипт, он выполняется в неинтерактивной оболочке, поэтому псевдоним недоступен.

Чтобы сохранить окраску, добавьте --color=autoфлаг к grepкоманде внутри скрипта:

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

Связанный контент