TPUT(1)

НАЗВАНИЕ
tput - инициализация терминала или выполнение запроса к базе данных терминалов

СИНТАКСИС


	tput  [-T тип_терминала] имя_атрибута [аргумент ...]

	tput  [-T тип_терминала] init

	tput  [-T тип_терминала] reset

	tput  [-T тип_терминала] longname

ОПИСАНИЕ
С помощью команды tput, использующей базу данных terminfo(4), shell [см. sh(1)] получает доступ к информации и характеристикам, зависящим от типа конкретного терминала. Посредством этой команды можно также инициализировать или переустановить терминал, получить длинное имя запрашиваемого типа терминала. Если атрибут с заданным именем является цепочкой символов, то команда tput возвращает цепочку символов; если атрибут является целым числом, то возвращается целое число. Если же атрибут логического типа, то tput просто устанавливает код завершения [0 (истина), если терминал имеет данную характеристику; 1 (ложь), если он ее не имеет] и ничего не выводит. Прежде чем использовать выданное на стандартный вывод значение, следует проверить код завершения [$?, см. sh(1)]. Полный список атрибутов (характеристик) терминалов и их имен можно найти в terminfo(4).

-T тип_терминала
Явное задание типа терминала. Обычно данная опция не нужна, так как по умолчанию используется значение переменной окружения $TERM. Если опция -T задана, то переменные shell'а LINES и COLUMNS не используются.

имя_атрибута
Обозначает атрибут базы данных terminfo(4).

аргумент
Если атрибут есть цепочка символов и требует аргументов, они берутся из командной строки. Чисто числовой аргумент передается как число.

init
Если база данных terminfo(4) существует и пользовательский терминал в ней описан (см. выше опцию -T), то происходит следующее:
  1. Выводятся (если они есть) цепочки символов, инициализирующие терминал (is1, is2, is3, if, iprog).
  2. Любые задержки (например, перевод строки), указанные в описании, будут установлены в драйвере tty.
  3. В соответствии со спецификацией будет включен или выключен режим преобразования табуляции в последовательность пробелов.
  4. Если символы табуляции не преобразуются в последовательность пробелов, будут установлены стандартные позиции табуляции (каждая восьмая).
Если описание не содержит информации, необходимой для какого-либо шага, этот шаг просто опускается.

reset
Вместо вывода символов инициализации будут выве дены (если они есть) цепочки символов переуста новки (rs1, rs2, rs3, rf). Если таких цепочек нет, но есть цепочки инициализации, то будут вы ведены последние. Во всем остальном reset дейст вует аналогично init.

longname
Если база данных terminfo(4) существует и пользовательский терминал в ней описан (см. выше опцию -T), то выводится длинное имя терминала. Длинное имя - это последнее имя в первой строке описания терминала в базе terminfo(4) [см. term(5)].

ПРИМЕРЫ

  1. Инициализировать терминал в соответствии с его типом, заданным переменной окружения TERM. Данную команду следует включать в профайл после экспортирования переменной TERM [см. profile(4)]:
    
    	tput  init
    
    
  2. Переустановить терминал типа vt100, не принимая во внимание переменную окружения TERM:
    
    	tput  -T vt100 reset
    
    
  3. Послать управляющую последовательность для установки курсора в левый верхний угол экрана:
    
    	tput  cup 0 0
    
    
  4. Послать управляющую последовательность, очищающую экран:
    
    	tput  clear
    
    
  5. Вывести число колонок на экране используемого терминала:
    
    	tput  cols
    
    
  6. Установить код завершения, отражающий возможность получения на текущем терминале твердой копии экрана:
    
    	tput  hc
    
    
  7. Выдать из базы terminfo(4) длинное имя для типа терминала, задаваемого переменной окружения TERM.
    
    	tput  longname
    
    

ФАЙЛЫ


	/usr/lib/terminfo/?/*   Скомпилированная  база   данных

		                описаний терминала.

	/usr/include/curses.h   Файл заголовка для curses(3X).

	/usr/include/term.h     Файл заголовка для terminfo(4).

	/usr/lib/tabset/*       Установки позиций табуляции для

		                некоторых терминалов в формате,

		                приемлемом для вывода (управля- 

		                ющие последовательности,  уста- 

		                навливающие границы  и  позиции

		                табуляций) [см. terminfo(4)].

СМ. ТАКЖЕ
stty(1), tabs(1). profile(4), terminfo(4) в Справочнике программиста.

КОДЫ ЗАВЕРШЕНИЯ
Если атрибут - логического типа, то 0 обозначает значение истина, а 1 - ложь.

Если атрибут имеет тип цепочки символов, то устанавливается значение 0 в случае, если этот атрибут определен для данного типа терминала (значение атрибута выдается на стандартный вывод); значение 1 устанавливается, если атрибут не определен для данного типа терминала (на стандартный вывод выдается пустое значение).

Если атрибут - целого типа, то всегда устанавливается значение 0, независимо от того, определен ли атрибут для данного типа терминала. Для того, чтобы выяснить, определен ли атрибут, надо проверить выдаваемое на стандартный вывод значение. -1 означает, что атрибут не определен для данного типа терминала.

Любой другой код завершения означает ошибку.

ДИАГНОСТИКА
Команда tput при ошибках выдает в стандартный протокол следующие сообщения и возвращает такие коды завершения:
Код Сообщение об ошибке
0 -1 (выдается на стандартный вывод). Атрибут является числовым и для данного типа терминала не определен.
1 Сообщение об ошибке не выводится, см. выше КОДЫ ЗАВЕРШЕНИЯ.
2 Неверное использование команды.
3 Неизвестный тип терминала или нет базы данных terminfo(4).
4 Неизвестное для terminfo(4) имя_атрибута.