Вывод цветом в консоль
- Информация о материале
- Категория: Рабочие Станции
- Опубликовано: 19.04.2011, 12:00
- Автор: Super User
- Просмотров: 1695
У шелла bash есть возможность выводить не только чернобелый текст, но и раскрашивать вывод в разные цвета.
Делается это при помощи Escape-последовательностей.
Пример вывода:
echo -e 'open \E[40;31m\033[1mhttp://yakim.org.ua\033[0m in your browser'
Здесь вывод части текста будет красным цветом по черному фону.
Разберем эту строку:
-e — разрешаем esc-последовательности
\E[40;31m\033 — после этого выводим красным цветом на черном фоне
\033[0m — возвращаемся в черно-белый режим
Числовые значения цвета в escape-последовательностях
Цвет |
Текст |
Фон |
---|---|---|
черный |
30 |
40 |
красный |
31 |
41 |
зеленый |
32 |
42 |
желтый |
33 |
43 |
синий |
34 |
44 |
пурпурный |
35 |
45 |
зеленовато-голубой |
36 |
46 |
белый |
37 |
47 |
Так же текст можно делать жирным, подчеркнутым, мерцающим или инвертированным:
echo -e "\033[1mЭто жирный текст.\033[0m"
echo -e "\033[4mЭто подчеркнутый текст.\033[0m"
echo -e "\033[5mЭто мерцающий текст.\033[0m"
echo -e "\033[7mЭто инвертированный текст.\033[0m"
Так же никто не мешает объединять эти свойства. Например:
echo -e "\033[1m\033[5mЭто жирный мерцающий текст\033[0m"
Или даже так:
echo -e "\033[1m\033[5m\E[40;31m\033 Это жирный мерцающий текст красного цвета\033[0m"
Но у этого всего есть, к сожалению, и обратная сторона. Escape-последовательности очень слабо переносимы. Так что если у вас получился красивый, разноцветный и читабельный вывод, далеко не факт, что он таким же и останется у кого-либо другого. Это зависит как от типа терминала, так и от используемого шелла. Но для себя все равно можно раскрашивать вывод скриптов, как вам больше нравится.