Попробуйте другие цвета и посмотрите, что из этого получится!
ПРИМЕЧАНИЕ
Помимо атрибутов символов нормального (0) и жирного (1) текста, есть также атрибут подчеркивания (4), мигания (5) и инверсии (7). В целях воспитания хорошего вкуса многие эмуляторы терминалов не поддерживают атрибут мигания.
Перемещение курсора
Экранированные последовательности можно использовать для позиционирования курсора. Этот прием часто используется для отображения времени или другой информации в разных местах на экране, например вверху, при каждом выводе приглашения к вводу. В табл. 13.4 перечислены экранированные последовательности, управляющие позицией курсора.
Таблица 13.4. Экранированные последовательности, управляющие позицией курсора
Последовательность | Действие |
\033[l;cH | Перемещает курсор в строку l и позицию c |
\033[nA | Перемещает курсор вверх на n строк |
\033[nB | Перемещает курсор вниз на n строк |
\033[nC | Перемещает курсор вперед на n символов |
\033[nD | Перемещает курсор назад на n символов |
\033[2J | Очищает экран и помещает курсор в левый верхний угол (строка 0, позиция 0) |
\033[K | Очищает экран от позиции курсора до конца текущей строки |
\033[s | Сохраняет текущую позицию курсора |
\033[u | Восстанавливает сохраненную позицию курсора |
Используя эти коды, можно сконструировать строку приглашения, рисующую красный прямоугольник с часами в верхней части экрана (время отображается желтым цветом). Код, определяющий строку приглашения, на этот раз выглядит немного устрашающе:
PS1="\[\033[s\033[0;0H\033[0;41m\033[K\033[1;33m\t\033[0m\033[u\]<\u@\h \W>\$ "
В табл. 13.5 приведены отдельные части этого определения, они помогут понять, как это работает.
Таблица 13.5. Экранированные последовательности, управляющие позицией курсора