Вывод цветом в консоль

У шелла 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-последовательности очень слабо переносимы. Так что если у вас получился красивый, разноцветный и читабельный вывод, далеко не факт, что он таким же и останется у кого-либо другого. Это зависит как от типа терминала, так и от используемого шелла. Но для себя все равно можно раскрашивать вывод скриптов, как вам больше нравится.