スクリプトから grep を呼び出すと色が失われる

スクリプトから grep を呼び出すと色が失われる

これは Git リポジトリを検索するための grep のシンプルなラッパーです。何らかの理由で、bash スクリプトから grep が呼び出されると、色が消えてしまいます。どうすれば修正できますか?

ここに画像の説明を入力してください

私はこのコマンドを使っていました

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

関連情報