Linux HOWTO


Переменная TERM


Переменная окружения TERM должна быть установлена по типу терминала, который вы используете. Обычно она устанавливается параметром terminal_type, переданным программе getty (посмотрите это в файле /etc/inittab

Это имя должно быть в базе данных terminfo. Только напечатайте "set" в командной строке, чтобы видеть, какой значение присвоено TERM (или напечатайте: tset -q). В консоли (мониторе) TERM установлен в "linux", который является монитором PC, подражающим модели несуществующего терминала по имени "linux". Так как "linux" близок к терминалу vt100, а также ко многим другим текстовым терминалам, то обозначение "linux" будет иногда работать как временное с текстовым терминалом.

Если на один и тот же порт могут быть подсоединено более одного типа терминала (/dev/tty ...) (например, если имеется переключатель, разрешающий использовать различные типы терминалов на одном и том же самом последовательном порту, или если порт соединен с модемом, на который звонят люди с различных типов терминалов), тогда TERM нужно устанавливать каждый раз, когда кто-то соединяется с последовательным портом. Часто имеется escape-последовательность запроса такая, чтобы компьютер мог запрашивать у терминала его тип. Другой способ состоит в том, чтобы попросить пользователя напечатать (или выбрать) тип своего терминала.

Возможно для этого действия вам понадобиться использовать tset в коротком скрипте shell.

Один способ сделать это состоит в том, чтобы использовать "tset" (см. man). Tset пробует определить имя терминала, который вы используете. Затем он ищет данные в terminfo и посылает вашему терминалу init строку.

Также можно устанавливать значение TERM. Например, пользователь звонит и и регистрируется в системе. Выполняется скрипт регистрации в системе .profile, который содержит внутри себя следующее выражение: eval `tset -s? Vt100`. Это приводит к следующему: пользователя спрашивают, использует ли он(а) vt100. Пользователь или отвечает да или печатает имя фактически используемого терминала. Затем tset посылает init строку и устанавливает TERM в это имя (тип) терминала.




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