Как стать автором
Обновить

Цветовое оформление консольного вывода

Время на прочтение1 мин
Количество просмотров73K
Кратко о том, как сделать для своей консольной программы или скрипта цветной вывод текста, а также дополнить его другими элементами оформления. Собственно, назначить можно цвет текста, цвет фона под ним, сделать текст жирным, подчеркнутым, невидимым и даже мигающим.

Шаблон для использования в современных командных оболочках и языках программирования таков: \x1b[...m. Это ESCAPE-последовательность, где \x1b обозначает символ ESC (десятичный ASCII код 27), а вместо "..." подставляются значения из таблицы, приведенной ниже, причем они могут комбинироваться, тогда нужно их перечислить через точку с запятой.
атрибуты
0 нормальный режим
1 жирный
4 подчеркнутый
5 мигающий
7 инвертированные цвета
8 невидимый
цвет текста
30 черный
31 красный
32 зеленый
33 желтый
34 синий
35 пурпурный
36 голубой
37 белый
цвет фона
40 черный
41 красный
42 зеленый
43 желтый
44 синий
45 пурпурный
46 голубой
47 белый


Теперь несколько примеров. Все это можно опробовать, введя в консольном окне echo -e "текст примера".

Ввод Результат
\x1b[31mTest\x1b[0m image
\x1b[37;43mTest\x1b[0m image
\x1b[4;35mTest\x1b[0m image


Обратите внимание, что во всех трех случаях после слова Test идет последовательность \x1b[0m, которая просто сбрасывает стиль оформления на стандартный.

Комплексный пример использования:
\x1b[1;31mСтрока\x1b[0m с
\x1b[4;35;42mразными\x1b[0m \x1b[34;45mстилями\x1b[0m
\x1b[1;33m
оформления\x1b[0m
image

Хорошая раскраска вывода часто значительно облегчает восприятие информации. Так что пробуйте и экспериментируйте.

P.S. Также об этом и некотором другом можно прочитать в man console_codes. Спасибо Riateche за подсказку.
Теги:
Хабы:
Всего голосов 99: ↑80 и ↓19+61
Комментарии46

Публикации

Истории

Ближайшие события

Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург