Шрифт:
esac
21.2.9. Применение различных цветов
Благодаря применению цвета можно придать экрану, где. отображается поток ввода, более привлекательный вид. При работе с цветами используется стандарт ANSI. Однако не все цвета можно применить во всех системах. Предлагаем перечень наиболее часто употребляемых цветов.
Цвета переднего плана
Значение
Цвет
30
черный
31
красный
32
зеленый
33
желтый (или коричневый)
34
голубой
35
пурпурный
36
синий (циан)
37
белый (или серый)
Фоновые цвета
Значение
Цвет
40
черный
41
красный
42
зеленый
43
желтый (или коричневый)
44
голубой
45
пурпурный
46
синий (циан)
47
белый (или серый)
Для отображения цветов переднего плана и фоновых цветов применяется следующий формат:
<ESCAPE> [значение_фона; значение переднего плана m
21.2.10. Генерирование цветов
Для генерирования цвета управляющие символы встраиваются в конструкцию echo. Данный метод применяется при работе с цветным терминалом и произвольной системой. Как и в случае с управляющими символами, цвета можно генерировать с помощью escape–последовательностей, встраиваемых в конструкцию echo. Для создания черного фона с передним планом зеленого цвета воспользуйтесь командой:
Linux/BSD: echo -e "\033[40;32m"
System V: echo "\033[40;32m"
Обобщенный метод: echo "<CTRL-V><ESCAPE>[40;32m"
При использовании обобщенного метода, т. е. комбинации клавиш [Ctrl+V], нажмите клавишу [Esc], затем введите символы [40;32m. Обобщенный метод и применяется далее в книге.
Возможно, лучше поместить конструкции echo, отвечающие за воспроизведение цвета, в конструкцию case, а затем оформить все это в виде функции. Ниже, приводится функция цвета case.
colour
(
# формат цвет_фона; цвет_переднего_планаm
case $1 in
black_green)
echo '^[[40;32m';;
black_yellow)
echo '^[[40;33m';;
black_white)
echo '^[[40;37m';;
black_cyan)
echo '^[[40;36m';;
red_yellow)
echo '^[[41;33m';;
black_blue)
echo '^[[40;34m';;
esac
}
Чтобы задать красный цвет фона и желтый цвет переднего плана, примените команду:
colour red_yellow
Для использования цветов в сценариях выполните следующие действия:
colour whatever echo something
# измените на другой цвет
colour whatever
echo something
Обычно по умолчанию в качестве цветов экрана используются черный и белый. Рассмотрим, как изменить эту установку, чтобы фоновым цветом был черный, а цветом переднего плана — зеленый. С этой целью в файл .profile достаточно добавить конструкцию echo, которая создает требуемую комбинацию.
Ниже приводится пример кода для управления экраном.
$ pg colour_scr
#!/bin/sh
# colour_scr
tput init
MYDATE=`date +%D`
colour
{
# формат цвет_фона; цвет_лереднего_планаm
case $1 in
black_green)
echo '^[[40;32m' ;;
black_yellow)
echo '^[[40;33m' ;;
black_white)
echo '^[[40;37m' ;;
black_cyan)
echo '^[[40;36m' ;;
black_red)
echo '^[[40;31m' ;;
esac
}
xy #xy
• для вызова: ху строка, столбец,"text"
• переход к координатам ху на экране {
#_R=row, _C=column
_R=$1
_C=$2