Как я могу работать с цветом в терминале 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', и все готово.
Даниэль Бек

Ответы:


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.