Как изменить цвет вывода эха в Linux PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Как изменить цвет вывода эха в Linux

Введение

Ассоциация echo команда выводит заданную строку в стандартная выходная труба, обычно указывая на терминал. Хотя стандартный канал вывода может указывать на другие интерфейсы — echo Команда обычно используется для печати и отображения сообщений в терминале. По умолчанию текст отображаемого сообщения наследует цвет другого текста в терминале (который сам по себе настраивается). Однако есть несколько способов изменить цвет вывода echo – как для отдельных строк, так и для целых сообщений.

В этом кратком руководстве мы рассмотрим, как можно изменить цвет вывода echo в системах на базе Linux с использованием escape-кодов ANSI, tput и как сделать этот процесс менее подробным в сценариях Bash.

Изменение цвета вывода с помощью управляющих кодов ANSI

Самый простой способ изменить цвет — использовать управляющие последовательности/коды ANSI. Все escape-коды ANSI начинаются с Escape символ, который может быть представлен в различных форматах – 27 в десятичном виде, x1B в шестнадцатеричном формате, как ключ управления ^[или 33 в восьмеричном формате. Затем за последовательностями следует команда:

33[command

Где открывающая скобка (Интродукция последовательности управления) является необязательным, но помогает отделить команду от escape-символа. Когда вы ставите цветовой код как команда меняет цвет встречного текста:

33[0;34

0;34 это код для синего цвета, например. Только с этим вы можете изменить цвет текста в echo с:

33[0;34Text

где Text будет окрашен в синий цвет. В качестве альтернативы рассмотрите простой скрипт bash для печати "Добро пожаловать во Францию" в цветах французского флага:

#!/bin/bash  
BLUE='33[0;34m'
WHITE= '33[0;37m' 
RED= '33[0;31m'   
echo -e "${Blue}Welcome ${WHITE}to ${RED}France"

Необязательный -e флаг echo Команда позволяет использовать специальные символы, такие как n (новая строка) и t (табуляция) внутри входной строки.

Как только вы запустите скрипт:

$ ./colors.sh

Это приводит к:

Как изменить цвет вывода эха в Linux PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Коды ANSI не ограничиваются цветом, но могут применяться и для стиля. Коды 0..9 представляют стили текста, а коды 30...37 представлять цвета:

Цвет Коды Текстовые стили Коды
Черный 30 Простой текст 0
Red 31 Жирный текст 1
Зелёная 32 Текст низкой интенсивности 2
Коричневый / Оранжевый 33 Подчеркнуть текст 4
Синии 34 Мигающий текст 5
Purple 35 Невидимый текст 8
Голубой 36 Зачеркнутый текст 9
Светло-серый 37

Давайте создадим сценарий bash, чтобы изучить некоторые из этих параметров:

#!/bin/bash
echo -e "33[0;33mSample text"
echo -e "33[1;33mBold text"
echo -e "33[2;33mLow intensity text"
echo -e "33[4;33mUnderline text"
echo -e "33[5;33mBlinking text"
echo -e "33[8;33mInvisible text"
echo -e "33[9;33mStrikethrough text"

Запуск этого скрипта приводит к:

Как изменить цвет вывода эха в Linux PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Ознакомьтесь с нашим практическим руководством по изучению Git с рекомендациями, принятыми в отрасли стандартами и прилагаемой памяткой. Перестаньте гуглить команды Git и на самом деле изучить это!

Точно так же вы можете изменить цвет фона этих текстов, используя коды 40..47:

цвет Коды
Черный 40
Red 41
Зелёная 42
Коричневый / Оранжевый 43
Синии 44
Purple 45
Голубой 46
Светло-серый 47

Изменение фона заданной строки сводится к тому же правилу, что и изменение цвета шрифта — код сам меняет поведение:

#!/bin/bash
BLUE='33[0;44m'
BLACK='33[0;30m'
WHITE='33[0;30;47m'
RED='33[0;41m'
echo -e "${BLUE}Welcome ${WHITE}to ${RED}France"

Примечание: Как правило, вы можете преобразовать цвета шрифта в цвета фона, добавив 10. 30 черный цвет шрифта, 40 черный цвет фона.

Измените цвет вывода с помощью tput

Альтернативой кодам ANSI является использование tput команда:

$ tput setaf color_code

setf позволяет использовать 8 цветов, а setaf позволяет использовать 256 цветов, поэтому в зависимости от используемой команды вы можете переключаться между 0..7 и 0..255 как цветовые коды. Оба формата команды посвящают 0..7 к тем же цветовым кодам, в то время как с setaf, 8..15 цвета высокой интенсивности и 16..231 разные оттенки первых 8, и 232..255 оттенки серого:

Как изменить цвет вывода эха в Linux PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
Кредит: Википедия.

Наконец, tput также позволяет изменить цвет фона, добавить жирный шрифт, уменьшить интенсивность и т. д. с помощью других команд:

Текстовые стили Команды
Цвет переднего плана сетаф
Фоновый цвет сетаб
Нет стиля сгв0
Жирный текст булавка
Текст низкой интенсивности Солнце
Подчеркнуть текст смул
Мигающий текст мигать
Обратный текст оборот

Давайте создадим еще один скрипт, который использует tput изменить цвет вывода echo:

#!/bin/bash
YELLOW=`tput setaf 3`
echo "${YELLOW}Changing"
WHITE=`tput setaf 7 bold`
echo "${WHITE}Colors"
BLUE=`tput setaf 4 smul`
echo "${BLUE}With tput"
CYAN=`tput setaf 6 blink`
echo "${CYAN}is less"
RED=`tput setab 1 setaf 7`
echo "${RED}verbose!"

Этот скрипт напечатает в терминале следующий вывод:

Как изменить цвет вывода эха в Linux PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Команда tput обеспечивает простой способ печати любого цвета с помощью простого цветового кода. Теперь давайте создадим скрипт, который может печатать каждый цветовой код, доступный для команды tput:

#!/bin/bash
tput init 
 end = $ (($ (tput colors) - 1)) 
 w = 1 
 for c
  in $ (seq 0 $end) 
  do
eval "$(printf " tput setaf % 3 s " " $c ")" 
      echo - n "$_" 
      [[$c - ge $ ((w * 2))]] 
      offset = 2 || offset = 0 
      [[$ (((c + offset) % (w - offset))) - eq $ (((w - offset) - 1))]] 
      echo 
 done 
 tput init

Он будет печатать от 0 до 255 цветов и их коды:

Как изменить цвет вывода эха в Linux PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Заключение

В этом кратком руководстве мы рассмотрели, как можно изменить цвет echoвывод в Linux — с использованием Escape-последовательностей ANSI и tput команда.

Мы также рассмотрели, как сделать процесс менее подробным, используя переменные Bash, настроить цвета фона и стиль текста.

Отметка времени:

Больше от Стекабьюс