В предыдущей статье были рассмотрены команды echo для форматирования вывода с помощью специальных команд в Bash. В этой статье рассмотрим, как с помощью других команд поменять цвет выводимого текста и фона под ним. На этом, я думаю, знакомство с командой echo можно будет закончить, хотя у неё есть ещё интересные свойства при работе с файловой системой, но этот вопрос можно отложить до того момента, когда это действительно понадобится.
Как вывести текст разными цветами командой echo в Bash
Для того, чтобы вывести текст разными цветами командой echo в Bash нужно также воспользоваться набором специальных символов, начинающихся с цепочки символов \033[3 далее следует номер от 0 до 7, определяющий цвет и заканчивается эта цепочка буквой m. Вот все возможные цвета для вывода в Bash:
\033[30m- чёрный\033[31m- красный\033[32m- зелёный\033[33m- желтый\033[34m- синий\033[35m- фиолетовый\033[36m- голубой\033[37m- серый
Как вывести текст разным цветом фона под ним командой echo в Bash
Кроме цвета текста в выводе Bash можно поменять цвет фона под текстом. Картина такая же точно. Разница только в одной цифре. Для переопределения цвета фона под выводимым на экран текстом служит набор специальных символов, начинающихся с цепочки символов \033[4 далее следует номер от 0 до 7, определяющий цвет и заканчивается эта цепочка буквой m. Также есть один специальный набор символов, сбрасывающих значение цвета фона до состояния «по умолчанию». Все возможные цвета для смены фона вывода текста в Bash:
\033[40m- чёрный\033[41m- красный\033[42m- зелёный\033[43m- желтый\033[44m- синий\033[45m- фиолетовый\033[46m- голубой\033[47m- серый\033[0m- сбросить все до значений по умолчанию
Таким образом можно поменять не только цвет выводимого текста, но и цвет фона.
Пример текста разного цвета и фона под ним в Bash
Для понимания того, как это всё происходит, можно проиллюстрировать всё описанное выше таким кодом:
root@server:~# echo -e "\033[41m\033[30m - чёрный;\033[0m\n\033[0m\033[31m - красный;\n\033[32m - зелёный;\n\033[33m - желтый;\n\033[34m - синий;\n\033[35m - фиолетовый;\n\033[36m - голубой;\n\033[37m - серый\n"
Если вывести приведённую выше команду, то результат будет такой:

Резюме
Таким образом были рассмотрены все варианты форматирования вывода команды echo в Bash, а также примеры работы этого форматирования.
Про то, как облегчить работу по выводу цветного текста, читай дальше в статье «Вывод цветного текста в BASH».