- 📜 Добавление цветов в скрипты Bash
- You may also like
- 🐧 Сравнение команд Printf и Echo на Linux
- 🐧 Что означает -z на Bash
- 🐧 Примеры команд size на Linux
- 🐧 Linux_Logo – вывод ASCII логотипа Linux с.
- 🐧 Параметры конфигурационного файла Apt /etc/apt/apt.conf
- 🐧 Разница между выключением, перезагрузкой и остановкой Linux
- ⌨️ Введение в команду “./configure”: Компиляция исходного кода.
- 🐧 Что такое /dev/zero на Linux?
- Каковы лучшие дистрибутивы Linux в 2022 году
- 🐧 Работа с переменной PATH на Linux. Это.
- Leave a Comment Cancel Reply
- • Свежие записи
- • Категории
- • Теги
- • itsecforu.ru
- • Страны посетителей
- IT is good
- Цветной man или как разукрасить вывод echo
📜 Добавление цветов в скрипты Bash
Используя коды вывода цвета ANSI, мы можем добавить цвет в выходные строки.
Стандарт ANSI определяет определенные цветовые коды;
Чтобы изменить цвет текста, нам нужен код переднего плана.
Есть также несколько других нецветных специальных кодов, которые относятся к нашей теме:
КОД | Описание |
---|---|
0 | Нормальный |
1 | Жирный текст |
2 | Тусклый текст |
3 | Курсив |
4 | Подчеркнутый текст |
Команда echo выводит текст
. Нам нужно сказать, что мы работаем со специальными кодами ANSI, а не только с обычными символами.
Это может быть достигнуто путем добавления \e в начале, чтобы сформировать escape-последовательность.
escape последовательность для указания цветовых кодов: \e [COLORm (COLOR представляет наш цветовой код в этом случае).
По умолчанию echo не поддерживает escape-последовательности.
Нам нужно добавить опцию -e, чтобы включить ее интерпретацию.
\e[0m означает, что мы используем специальный код 0, чтобы вернуть цвет текста в нормальнй.
Без этого весь другой текст, который вы выведете после этого, будет красным.
Это работает, но было бы более читабельно, если бы мы хранили цветовые коды в переменных и использовали их.
RED="\e[31m" ENDCOLOR="\e[0m" echo -e "$RED>Red text$ENDCOLOR>"
Собрав все это вместе, мы могли бы получить такой скрип
#! /usr/bin/env bash RED="\e[31m" GREEN="\e[32m" ENDCOLOR="\e[0m" echo -e "$RED>This is some red text, $ENDCOLOR>" echo -e "$GREEN>And this is some green text$ENDCOLOR>"
#! /usr/bin/env bash RED="31" GREEN="32" BOLDGREEN="\e[1;$GREEN>m" ITALICRED="\e[3;$RED>m" ENDCOLOR="\e[0m" echo -e "$BOLDGREEN>Behold! Bold, green text.$ENDCOLOR>" echo -e "$ITALICRED>Italian italics$ENDCOLOR>"
itisgood
🐳 Как запустить Docker Контейнеры, используя Podman и Libpod
🐳 Как изменить расположение файла Docker sock?
You may also like
🐧 Сравнение команд Printf и Echo на Linux
🐧 Что означает -z на Bash
🐧 Примеры команд size на Linux
🐧 Linux_Logo – вывод ASCII логотипа Linux с.
🐧 Параметры конфигурационного файла Apt /etc/apt/apt.conf
🐧 Разница между выключением, перезагрузкой и остановкой Linux
⌨️ Введение в команду “./configure”: Компиляция исходного кода.
🐧 Что такое /dev/zero на Linux?
Каковы лучшие дистрибутивы Linux в 2022 году
🐧 Работа с переменной PATH на Linux. Это.
Leave a Comment Cancel Reply
• Свежие записи
• Категории
• Теги
• itsecforu.ru
• Страны посетителей
IT is good
В этой статье вы узнаете, как удалить удаленный Git-репозиторий. Процесс прост, но его полезно запомнить, чтобы избежать неожиданностей в будущем. Git – это…
В 11-й версии своей операционной системы Microsoft серьезно переработала интерфейс и убрала несколько привычных функций. Нововведения не всем пришлись по душе. Мы дадим…
Продажа ноутбука нередко становится хлопотным занятием. Кроме поиска покупателя, продавцу необходимо подготовить устройство перед проведением сделки. Но если последовательно выполнить все шаги, ничего…
Вы можете оказаться в ситуации, когда вам нужно использовать скрипт шелла для чтения файлов построчно. В этом руководстве я расскажу о нескольких способах…
Вторичное жильё выгоднее для молодых семей, желающих приобрести свою первую квартиру. Сталкиваясь с ипотечным кредитованием, можно избежать много лишней суеты и проблем, если…
Цветной man или как разукрасить вывод echo
echo -e # ключ -e в комманде echo включает отображение «backslash escapes» ; например \n — переход на следующую строку, \t -табуляция
echo -n # ключ -n в команде echo сигнализирует, что после вывода информации не нужно переходить на следующую строку.
echo -en # в нашем случае поможет раскрасить вывод текста.
2) Хорошая статья с примерами «Управление консолью Linux» RUS
c-reaction.net/content/204
Для начала одним глазом хотябы посмотрим на man echo rus, а потом рассмотрим как использовать цвет
www.opennet.ru/man.shtml?topic=echo&category=1
Переходим к Управлению цветом:
tput sgr0 Возврат цвета в «нормальное» состояние
\033[0m все атрибуты по умолчанию
\033[1m жирный шрифт (интенсивный цвет)
\033[2m полу яркий цвет (тёмно-серый, независимо от цвета)
\033[4m подчеркивание
\033[5m мигающий
\033[7m реверсия (знаки приобретают цвет фона, а фон — цвет знаков)
\033[22m установить нормальную интенсивность
\033[24m отменить подчеркивание
\033[25m отменить мигание
\033[27m отменить реверсию
\033[30 чёрный цвет знаков
\033[31 красный цвет знаков
\033[32 зелёный цвет знаков
\033[33 желтый цвет знаков
\033[34 синий цвет знаков
\033[35 фиолетовый цвет знаков
\033[36 цвет морской волны знаков
\033[37 серый цвет знаков
\033[40 чёрный цвет фона
\033[41 красный цвет фона
\033[42 зелёный цвет фона
\033[43 желтый цвет фона
\033[44 синий цвет фона
\033[45 фиолетовый цвет фона
\033[46 цвет морской волны фона
\033[47 серый цвет фона
black 30 40 \033[30m \033[40m
red 31 41 \033[31m \033[41m
green 32 42 \033[32m \033[42m
yellow 33 43 \033[33m \033[43m
blue 34 44 \033[34m \033[44m
magenta 35 45 \033[35m \033[45m
cyan 36 46 \033[36m \033[46m
grey 37 47 \033[37m \033[47m
Допускается объединение этих управляющих последовательностей.
Например \033[1m\033[5m\033[36m может быть заменено эквивалентной последовательностью \033[1;5;36m.
#!/bin/sh
#
# скрипт выводит на экран сообщение с использованием цвета
#
echo -en «\033[37;1;41m Внимание \033[0m»
#!/bin/sh
#
# скрипт запускает копию командного интерпретатора sh
# с цветным приглашением
#
export PS1= «\[\033[1;30m\][\[\033[0m\]\t\[\033[1;30m\];\
\[\033[0m\]\W\[\033[1;30m\]]\[\033[36;1m\]|\[\033[0m\] »
echo «Now runing a new copy of shell width color prompt»
echo -en «use \033[1;36mexit\033[0m command or»
echo -e «\033[1;36m^D\033[0m to return back»
sh
#
# обратите внимание на то, что управляющие последовательности
# заключены в скобки «\[» и «\]»
# Это сделано для того, чтобы shell не учитывал их при
# оценке длины строки.
# В противном случае длинные строки будут переноситься неверно.
#
Для удобства пользвания можно цвет и доп. свойства назначить переменным:
Файл .sh должен быть в формате UNIX и с кодировкой UTF-8
Ну и напоследок — один хороший пример со всеми плюшками:
#!/bin/sh
# echo подсветка
# echo color
# Скрипт выводит на экран список меню
#Памятка, Таблица цветов и фонов
#Цвет код код фона
#black 30 40 \033[30m \033[40m
#red 31 41 \033[31m \033[41m
#green 32 42 \033[32m \033[42m
#yellow 33 43 \033[33m \033[43m
#blue 34 44 \033[34m \033[44m
#magenta 35 45 \033[35m \033[45m
#cyan 36 46 \033[36m \033[46m
#white 37 47 \033[37m \033[47m
# Дополнительные свойства для текта:
BOLD= ‘\033[1m’ # $ # жирный шрифт (интенсивный цвет)
DBOLD= ‘\033[2m’ # $ # полу яркий цвет (тёмно-серый, независимо от цвета)
NBOLD= ‘\033[22m’ # $ # установить нормальную интенсивность
UNDERLINE= ‘\033[4m’ # $ # подчеркивание
NUNDERLINE= ‘\033[4m’ # $ # отменить подчеркивание
BLINK= ‘\033[5m’ # $ # мигающий
NBLINK= ‘\033[5m’ # $ # отменить мигание
INVERSE= ‘\033[7m’ # $ # реверсия (знаки приобретают цвет фона, а фон — цвет знаков)
NINVERSE= ‘\033[7m’ # $ # отменить реверсию
BREAK= ‘\033[m’ # $ # все атрибуты по умолчанию
NORMAL= ‘\033[0m’ # $ # все атрибуты по умолчанию
# Цвет текста:
BLACK= ‘\033[0;30m’ # $ # чёрный цвет знаков
RED= ‘\033[0;31m’ # $ # красный цвет знаков
GREEN= ‘\033[0;32m’ # $ # зелёный цвет знаков
YELLOW= ‘\033[0;33m’ # $ # желтый цвет знаков
BLUE= ‘\033[0;34m’ # $ # синий цвет знаков
MAGENTA= ‘\033[0;35m’ # $ # фиолетовый цвет знаков
CYAN= ‘\033[0;36m’ # $ # цвет морской волны знаков
GRAY= ‘\033[0;37m’ # $ # серый цвет знаков
# Цветом текста (жирным) (bold) :
DEF= ‘\033[0;39m’ # $
DGRAY= ‘\033[1;30m’ # $
LRED= ‘\033[1;31m’ # $
LGREEN= ‘\033[1;32m’ # $
LYELLOW= ‘\033[1;33m’ # $
LBLUE= ‘\033[1;34m’ # $
LMAGENTA= ‘\033[1;35m’ # $
LCYAN= ‘\033[1;36m’ # $
WHITE= ‘\033[1;37m’ # $
# Цвет фона
BGBLACK= ‘\033[40m’ # $
BGRED= ‘\033[41m’ # $
BGGREEN= ‘\033[42m’ # $
BGBROWN= ‘\033[43m’ # $
BGBLUE= ‘\033[44m’ # $
BGMAGENTA= ‘\033[45m’ # $
BGCYAN= ‘\033[46m’ # $
BGGRAY= ‘\033[47m’ # $
BGDEF= ‘\033[49m’ # $
tput sgr0 # Возврат цвета в «нормальное» состояние
#Начало меню
echo «»
echo -n » »
echo -e «$$$ Меню DNS323 $»
echo «»
echo -en «$ 1 $ Комманды для удобной работы в telnet $(Выполнить?)$\n»
echo «»
echo -en «$ 2 $ Пути к папкам & Изменение прав доступа $(Комманды)$\n»
echo «»
echo -en «$ 3 $ Transmission ($Start$, $Stop$, $Upgrade$) $(Меню)$\n»
echo «»
echo -en «$ 4 $ Копирование (cp & rsync) $(Комманды)$\n»
echo «»
echo -en «$ 5 $ Создание ссылки на файл или папку $(Комманды)$\n»
echo «»
echo -en «$ 6 $ Установка из fun-plug & IPKG $(Комманды)$\n»
echo «»
echo -en «$ 7 $ Показать Трафик ($ n$load) $(Выполнить?)$\n»
echo «»
echo -en «$ 8 $ Диспетчер задач ($ h$top) $(Выполнить?)$\n»
echo «»
echo -en «$ 9 $ Midnight Commander ($ m$c) $(Выполнить?)$\n»
echo «»
echo -en «$ q $ Выход $\n»
echo «»
echo «(Введите пожалуйта номер пункта, чтобы выполнить комманды этого пункта, любой другой ввод, Выход)»
echo «»
tput sgr0
ps: Подскажите, пожалуйста, в какой блог лучше опубликовать?
UPD1: перенес в Linux для всех, т.к. это наиболее близкий блог по тематике, как мне кажется.
UPD2: Спасибо aco за картинку, кратко и наглядно =)