Искусство программирования на языке сценариев командной оболочки


Программирование на языке сценариев командной оболочки - стр. 282


/p>

Числовые значения цвета, приведенные ниже, справедливы для rxvt. Для других эмуляторов они могут несколько отличаться.

Таблица 33-1. Числовые значения цвета в escape-последовательностях

Цвет

Текст

Фон

черный 30 40
красный 31 41
зеленый 32 42
желтый 33 43
синий 34 44
пурпурный 35 45
зеленовато-голубой 36 46
белый 37 47

Пример 33-9. Вывод цветного текста

#!/bin/bash # color-echo.sh: Вывод цветных сообщений.

black='\E[30;47m' red='\E[31;47m' green='\E[32;47m' yellow='\E[33;47m' blue='\E[34;47m' magenta='\E[35;47m' cyan='\E[36;47m' white='\E[37;47m'

cecho () # Color-echo. # Аргумент $1 = текст сообщения # Аргумент $2 = цвет { local default_msg="Нет сообщений." # Не обязательно должна быть локальной.

message=${1:-$default_msg} # Текст сообщения по-умолчанию. color=${2:-$black} # Цвет по-умолчанию черный.

echo -e "$color" echo "$message" tput sgr0 # Восстановление первоначальных настроек терминала. return }

# Попробум что-нибудь вывести. # ---------------------------------------------------- cecho "Синий текст..." $blue cecho "Пурпурный текст." $magenta cecho "Позеленевший от зависти." $green cecho "Похоже на красный?" $red cecho "Циан, более известный как цвет морской волны." $cyan cecho "Цвет не задан (по-умолчанию черный)." # Аргумент $color отсутствует. cecho "\"Пустой\" цвет (по-умолчанию черный)." "" # Передан "пустой" аргумент цвета. cecho # Ни сообщение ни цвет не переданы. cecho "" "" # Функции переданы "пустые" аргументы $message и $color. # ----------------------------------------------------

echo

exit 0

# Упражнения: # --------- # 1) Добавьте в функцию 'cecho ()' возможность вывода "жирного текста". # 2) Добавьте возможность управления цветом фона.

Однако, как обычно, в бочке меда есть ложка дегтя. Escape-последовательности ANSI совершенно не переносимы. Вывод в одном эмуляторе терминала (или в консоли) может разительно отличаться от вывода в другом эмуляторе. "Расцвеченные" сценарии, дающие изумительно красивый вывод текста на одном терминале, могут давать совершенно нечитаемый текст на другом. Это ставит под сомнение практическую ценность "расцвечивания" вывода в сценариях, низводя ее до уровня никчемной "игрушки".

<


Начало  Назад  Вперед



Книжный магазин