В Bash, как написать псевдоним или функцию для "export GREP_COLOR = '1; 32'; grep --color"? - PullRequest
4 голосов
/ 06 августа 2010

grep не позволяет устанавливать цвет на

grep --color='1;32'

(1 означает жирный шрифт, а 32 означает зеленый).Он должен использовать GREP_COLOR

export GREP_COLOR='1;32'

, а затем использовать grep --color

Как мы можем использовать псевдоним или написать функцию для grep, чтобы у нас было 2 версии grep, grep и grepstrong) , один для обычного зеленого шрифта, а другой - для зеленого шрифта с черным (или белым) фоном?

alias grep='export GREP_COLOR="1;32"; grep --color'

не будет работать, потому что если мы используем

grep some_function_name | grep 3

тогда вышеупомянутый псевдоним сгенерирует результаты grep и передаст в export, так что второй grep вообще не получит никакого ввода и просто ждет там.

Ответы [ 3 ]

7 голосов
/ 06 августа 2010

С помощью bash вы можете установить переменные окружения только для одной команды, добавив команду парами «ключ = значение»:

GREP_COLOR='1;32' grep --color <whatever>

Пример:

echo foo | VAR=value bash -c 'read line; echo $VAR: $line'

Так что в вашем случае просто скажите:

alias grep='GREP_COLOR="1;32" grep --color'
0 голосов
/ 06 августа 2010

Используя ответ Шона, псевдоним grepstrong должен экранировать grep, чтобы он не вызывал grep с использованием зеленого цвета шрифта.

alias grep='GREP_COLOR="1;32" grep --color'
alias grepstrong='GREP_COLOR="1;34;46" \grep --color'
0 голосов
/ 06 августа 2010

Вы помещаете это в свой файл .bashrc?Просто сделайте это так:

export GREP_COLOR="1;32"
alias grep='grep --color'

и вам будет хорошо идти

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...