20 August 2010

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

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

Шаблон для использования в современных командных оболочках и языках программирования таков: \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 за подсказку.
Tags:linux консоль
Hubs: Configuring Linux
+61
54k 195
Comments 46