Как я могу работать с цветом в терминале Mac OS X?

40

Недавно я обнаружил, что в Mac OS XI можно настроить это в моей оболочке, ~/.profileчтобы при использовании grepон печатал спички в цвете (белый красный).

alias grep='GREP_COLOR="1;37;41" LANG=C grep --color=auto'

Но создание псевдонима кажется хакерским способом сделать это. Ранее я пытался без удачи:

export GREP_COLOR=always           # works fine in Linux

И тогда я тоже попробовал:

export GREP_COLOR="1;37;41"

Есть ли лучший способ сделать это, чем создать псевдоним?

УХО
источник
Я не вижу смысла вашего вопроса. Псевдоним, как вы это делаете. Вот для чего это. exportпеременная окружения, например, в .bash_profile, и определить alias grep='grep --color', и все готово.
Даниэль Бек
2
проверьте это: unix.stackexchange.com/questions/34790/grep-color-on-mac
lupincho

Ответы:

61

Согласно Grep_color для Mac, как предлагает @lupincho, это работает нормально и не использует псевдоним:

export GREP_OPTIONS='--color=always'
export GREP_COLOR='1;35;40'
Стив Браун
источник
13
Иметь +1 за это как хорошее решение, однако установка GREP_OPTIONS приводит к grep: warning: GREP_OPTIONS is deprecated; please use an alias or script. Нечто подобное сейчас предпочтительнее:alias grep="`which grep` --color=always"
joelittlejohn
2
@joelittlejohn не работает при использовании grep в каналах с xargs, например:find /usr/share -name '*.txt' |xargs grep testing
rfabbri
1
@ rfabbri Я думаю, что это один из вопросов, которые нужно обсудить с командой grep, которая не
одобряет
3
--color=alwaysопасный. Скрипты, запускаемые из оболочки, также наследуют этот параметр и вызывают очень загадочные сбои, когда grep начинает вводить цветовые коды для вывода внутри скриптов. --color=autoне вызывает этой проблемы.
Сампо
1
@joelittlejohn, что не так для стандартного grep в OSX. Даже на High Sierra 10.13 используется FREEBSD grep 2.5.1, который НЕ УСТАРЕЛ GREP_OPTIONS. Это верно только для gnu / grep
cde