Scroll to navigation

tput(1) General Commands Manual tput(1)

NAZWA

tput - inicjalizuj terminal lub pytaj bazę terminfo

SKŁADNIA

tput [-Ttyp] nazwawłaściwości [parm ... ]
tput [-Ttyp] init
tput [-Ttyp] reset
tput [-Ttyp] longname
tput -S <<

OPIS

Narzędzie tput robi użytek z bazy terminfo, dając możlwiość dojścia do zależnych od terminala właściwości z poziomu powłoki (zobacz sh(1)), a także inicjalizowania lub resetowania terminala, lub zwracania długiej nazwy żądanego typu terminala.

Jeśli atrybut (nazwawłaściwości) jest typu łańcuchowego, tput wydaje wartość łańcuchową, a jeśli jest typu całkowitego, wydaje liczbę całkowitą. Jeśli atrybut jest wartością logiczną, tput po prostu ustawia kod wyjścia (0 to prawda, jeśli terminal ma daną właściwość, a 1 to fałsz, jeśli terminal żądanej właściwości nie posiada) i nie wydaje żadnego wyjścia tekstowego.

Przed użyciem zwróconej wartości, użytkownik powinien przetestować kod wyjscia i upewnić się, że wynosi on 0. (Zobacz sekcje KODY WYJŚCIA i DIAGNOSTYKA.) Dla kompletnej listy właściwości i nazwwłaściwości związanych z każdą z nich, zobacz terminfo(5).

określa typ terminala. Normalnie opcja ta jest niepotrzebna, gdyż wartość domyślna jest pobierana ze zmiennej środowiskowej TERM. Jeśli podane jest -T, zmienne powłoki LINES i COLUMNS będą ignorowane, a system operacyjny nie będzie zapytywany o rzeczywisty rozmiar ekranu.
określa atrybut z bazy terminfo. Gdy wkompilowana jest obsługa termcap, można podawać również termcapowe nazwy atrybutów.
Jeśli atrybut jest łańcuchem, który wymaga parametrów, argumenty param zostaną przeniesione do tego łańcucha. Wszystkie argumenty numeryczne zostaną atrybutowi przekazane jako liczby.
umożliwiwa używanie więcej niż jednej właściwości na jedno wywołanie tput. Właściwości muszą być przekazywane do tput ze standardowego wejścia, a nie przez linię poleceń (zobacz przykład). Na linię dozwolona jest tylko jedna nazwawłaściwości. Opcja -S zmienia znaczenie kodów wyjścia 0 i 1 (zobacz sekcję KODY WYJŚCIA).
Jeśli baza terminfo istnieje i znajduje się w niej opis dla terminala użytkownika (zobacz wyżej -Ttyp), to stanie sie co następuje: (1) jeśli istnieją łańcuchy inicjalizacyjne, to zostaną one wysłane (is1, is2, is3, if, iprog), (2) wszelkie opóźnienia (np. nowej linii), podane w opisie zostaną ustawione w sterowniku tty, (3) rozszerzanie tabulacji zostanie włączone lub wyłączone, zależnie od specyfikacji w opisie i (4) jeśli tabulacje nie są rozszerzane, ustawione zostaną standardowe tabulacje (co 8 spacji). Jeśli opis nie zawiera informacji wymaganej dla któregoś z tych czterech działań, to zostanie ono cicho pominięte.
Zamiast wystawiania łańcuchów inicjalizacji, wysłane zostaną (o ile są obecne) łańcuchy resetowania (rs1, rs2, rs3, rf). Jeśli łańcuchy resetowania nie są zdefiniowane, lecz zdefiniowane są łańcuchy inicjalizacji, to wysłane zostaną łańcuchy inicjalizacji. W przeciwnym wypadku, reset działa analogicznie do init.
Jeśli obecna jest baza terminfo i istnieje w niej opis dla terminala użytkownika (zobacz wyżej -Ttyp), to wyświetlona zostanie długa nazwa terminala. Długa nazwa jest ostatnią nazwą w pierwszej linii opisu terminala w bazie terminfo [zobacz term(5)].

PRZYKŁADY

Inicjalizuj terminal według typu terminala ze zmiennej środowiskowej TERM. Komenda ta powinna być załączona do .profile każdego użytkownika po wyeksportowaniu zmiennej środowiskowej TERM, jak pokazano w podręczniku profile(4).
Resetuj terminal AT&T 5620, przeciążając rodzaj terminala ze zmiennej środowiskowej TERM.
Wyślij sekwencję do przesunięcia kursora do wiersza 0, kolumny 0 (lewy górny narożnik ekranu, znany zwykle jako "domowa" (home) pozycja kursora).
Wyślij na bieżący terminal sekwencję czyszczącą ekran.
Wydrukuj liczbę kolumn w bieżącym terminalu.
Wydrukuj liczbę kolumn terminala 450.
Ustaw zmienne powłoki bold na początek sekwencji trybu standout i offbold na koniec sekwencji trybu standout bieżącego terminala. Może to być użyte w znaku zachęty: echo "${bold}Proszę wpisać imię: ${offbold}\c"
Ustaw kod wyjścia, określający czy terminal jest terminalem hard copy.
Wyślij sekwencję przesuwającą kursor do wiersza 23 w 4 kolumnie.
Wydrukuj długą nazwę terminala TERM, określoną w bazie terminfo.

> clear
> cup 10 10
> bold
> !
Ten przykład pokazuje przetwarzania przez tput kilku właściwości w jednym wywołaniu. Przykład ten czyści ekran, przesuwa kursor do pozycji 10, 10 i włącza tryb wytłuszczenia. Lista jest kończona znakiem wykrzyknika, znajdującym się w osobnej linii.

PLIKI

/usr/share/terminfo
skompilowana baza opisu terminala
/usr/include/curses.h
plik nagłówkowy curses(3X)
/usr/include/term.h
plik nagłówkowy terminfo
/usr/share/tabset/*
ustawienia tab dla niektórych terminali w formacie odpowiednim do wysyłania na terminal (sekwencje specjalne, ustawiające marginesy i tabulacje); dla dalszych informacji, zobacz sekcję "Tabs and Initialization" terminfo(4).

ZOBACZ TAKŻE

clear(1), stty(1), tabs(5). profile(5), terminfo(4) w podręczniku System Administrator's Reference Manual. Rozdział 10 podręcznika Programmer's Guide.

KODY WYJŚCIA

Jeśli nazwawłaściwości jest typu logicznego, dla prawdy zwracana jest wartość 0, a dla fałszu 1. Wyjątkiem jest użycie opcji -S.

Jeśli nazwawłaściwości jest typu łańcuchowego, zwracane jest 0, gdy własciwość jest zdefiniowana dla tego terminala (wartość nazwywłaściwości jest zwracana na standardowe wyjście); zwracane jest 1 jeśli właściwość nazwawłaściwości nie jest zdefiniowana dla tego terminala (na stdout nie jest nic wypisywane).

Jeśli nazwawłaściwości jest typu logicznego, lub łańcuchowego i użyto opcji -S, w wypadku gdy wszystkie linie były pomyślne zwracane jest 0. Ponieważ nie można określić, która z linii się nie powiodła, nie jest zwracana wartość 1. Kody wyjścia 2, 3 i 4 mają swoją tradycyjną interpretację.

Jeśli nazwawłaściwości jest typu całkowitego, zwracane jest zawsze 0. Aby określić czy własciwość jest zdefiniowana, użytkownik musi testować wartość standardowego wyjścia. Wartość -1 oznacza, że własciwość nie jest zdefiniowana dla tego terminala.

Wszystkie inne kody wyjścia oznaczają błędy; zobacz sekcję DIAGNOSTYKA.

DIAGNOSTYKA

tput drukuje następujące komunikaty o błędach i ustawia odpowiednie kody błędów:

kod błędu komunikat błędu
0 (nazwawłaściwości jest zmienną numeryczną, która nie jest
podana w bazie terminfo(5) tego typu terminala, np.
tput -T450 lines i tput -T2621 xmc)
1 nie jest drukowany żaden komunikat błędu, zobacz sekcję KODY
WYJŚCIA.
2 błąd użycia.
3 nieznany typ terminala, lub brak bazy terminfo.
4 nieznana własciwość nazwawłaściwości terminfo

PRZENOŚNOŚĆ

Opcje longname i -S oraz właściwości podstawiania parametrów, używane w przykładzie cup nie są obsługiwane w BSD curses i w AT&T/USL curses przed SVr4.