Как отобразить цветной текст в терминале?

472
Arin

Я хочу отображать цветной текст в терминале (оболочка bash). Пробовал с таким подходом:

echo -e "\e[1;31m This is red text \e[0m" 

Но это не меняет цвет текста на красный.

0
В каком терминале вы его используете? Возможно, ваш терминал не поддерживает цвета. Эта команда выводит мне красный текст Fanatique 6 лет назад 0
@Fanatique Терминал по умолчанию для Mac. Разве это не поддерживает раскраску текста? Arin 6 лет назад 0

3 ответа на вопрос

2
Yoric

Вы можете попробовать с этой командой:

echo -e "\033[1;31m This is red text" 

31 - это «цвет», а 1 - «стиль».

Вы можете играть с другим цветом:

for i in ; do echo -e "\033[1;$i""m colorful text\033[0m"; done 

И разные стили:

for i in ; do echo -e "\033[$i;31""m different style\033[0m"; done 

Обратите внимание:

"\ 033 [0m" в конце строки похож на закрывающий тег, поэтому после него он не повлияет на текст.

Спасибо, @Yoric. Этот подход прекрасно работает для меня. Arin 6 лет назад 0
Этот ответ на самом деле не проясняет причину проблемы, которая объясняется по адресу https://unix.stackexchange.com/a/461073/5132, и это все, что связано с причудами команды `echo`. JdeBP 6 лет назад 0
-1
Fanatique

Ваша проблема в том, что, скорее всего, цветной вывод отключен в вашем терминале.

Чтобы включить его, отредактируйте .bashrcфайл и добавьте следующее:

export CLICOLOR=1 

Затем зайдите в настройки терминала -> Настройки -> Профили -> Текст -> Показать цвета ANSI.

Откройте новый терминал, и вы должны быть готовы к работе!

Источник: OS X Terminal Colors @ stackoverflow

В моей системе _Display ANSI colors_ уже включен. ** Однако **, цвет текста не меняется после `экспорта CLICOLOR = 1` в .bash_profile. Ссылка, которой вы поделились, говорит об изменении цвета PS1, который работает как положено. @Fanatique Arin 6 лет назад 0
-1
user955501

Я не знаю, требуется ли вам это, но если вы перейдете в «Терминал» -> «Настройки» -> «Профили», вы можете изменить цвет текста на любой другой, какой захотите, перейдя к опции «Текст» и выбрав нужный цвет. хотите или есть несколько предопределенных шаблонов в соответствии с вашим стилем.

Вы говорите об изменении цвета / стиля терминала. Но требование состоит в том, чтобы отображать цветной текст, используя shell-скрипт. Arin 6 лет назад 0