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).

-Ttyp
    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.

nazwawłaściwości
    określa atrybut z bazy terminfo. Gdy wkompilowana jest obsługa termcap, można podawać również termcapowe nazwy atrybutów.

parm
    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.

-S  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).

init
    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.

reset
    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.

longname
    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

tput init
    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).

tput -T5620 reset
    Resetuj terminal AT&T 5620, przeciążając rodzaj terminala ze zmiennej środowiskowej TERM.

tput cup 0 0
    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).

tput clear
    Wyślij na bieżący terminal sekwencję czyszczącą ekran.

tput cols
    Wydrukuj liczbę kolumn w bieżącym terminalu.

tput -T450 cols
    Wydrukuj liczbę kolumn terminala 450.

bold=`tput smso` offbold=`tput rmso`
    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"

tput hc
    Ustaw kod wyjścia, określający czy terminal jest terminalem hard copy.

tput cup 23 4
    Wyślij sekwencję przesuwającą kursor do wiersza 23 w 4 kolumnie.

tput longname
    Wydrukuj długą nazwę terminala TERM, określoną w bazie terminfo.

tput -S <<!
    > 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.