tput
initialize a terminal or query terminfo database
see also :
clear - stty - tabs
Synopsis
tput
[-Ttype] capname [parms
... ]
tput [-Ttype] init
tput [-Ttype] reset
tput [-Ttype] longname
tput -S <<
tput -V
add an example, a script, a trick and tips
examples
tput init
Initialize the terminal according to the type of terminal in the
environmental variable TERM. This command should be
included in everyone’s .profile after the environmental variable
TERM has been exported, as illustrated on the
profile(5) manual page.
tput -T5620 reset
Reset an AT&T 5620 terminal, overriding the type of terminal
in the environmental variable TERM.
tput cup 0 0
Send the sequence to move the cursor to row 0, column
0 (the upper left corner of the screen, usually known as
the "home" cursor position).
tput clear
Echo the clear-screen sequence for the current terminal.
tput cols
Print the number of columns for the current terminal.
tput -T450 cols
Print the number of columns for the 450 terminal.
bold=’tput smso’ offbold=’tput rmso’
Set the shell variables bold, to begin stand-out mode
sequence, and offbold, to end standout mode sequence, for
the current terminal. This might be followed by a prompt: echo
"${bold}Please type in your name: ${offbold}\c"
tput hc
Set exit code to indicate if the current terminal is a hard copy
terminal.
tput cup 23 4
Send the sequence to move the cursor to row 23, column 4.
tput cup
Send the terminfo string for cursor-movement, with no parameters
substituted.
tput longname
Print the long name from the terminfo database for the
type of terminal specified in the environmental variable
TERM.
tput -S <<!
> clear
> cup 10 10
> bold
> !
This example shows tput processing several capabilities in
one invocation. It clears the screen, moves the cursor to
position 10, 10 and turns on bold (extra bright) mode. The list
is terminated by an exclamation mark (!) on a line by
itself.
source
tput setaf 7
tput setab 0
description
The tput
utility uses the terminfo database to make the values
of terminal-dependent capabilities and information available
to the shell (see sh(1)), to initialize or reset the
terminal, or return the long name of the requested terminal
type. The result depends upon the capability’s
type:
string
tput writes the string
to the standard output. No trailing newline is supplied.
integer
tput writes the decimal
value to the standard output, with a trailing newline.
boolean
tput simply sets the
exit code (0 for TRUE if the terminal has the
capability, 1 for FALSE if it does not), and writes
nothing to the standard output.
Before using a
value returned on the standard output, the application
should test the exit code (e.g., $?, see
sh(1)) to be sure it is 0. (See the EXIT
CODES and DIAGNOSTICS sections.) For a complete
list of capabilities and the capname associated with
each, see terminfo(5).
-Ttype
indicates the type of terminal. Normally this
option is unnecessary, because the default is taken from the
environment variable TERM. If -T is
specified, then the shell variables LINES and
COLUMNS will be ignored,and the operating system will
not be queried for the actual screen size.
capname
indicates the capability from
the terminfo database. When termcap support is
compiled in, the termcap name for the capability is
also accepted.
parms
If the capability is a string that takes parameters, the
arguments parms will be instantiated into the
string.
Most parameters
are numbers. Only a few terminfo capabilities require string
parameters; tput uses a table to decide which to pass
as strings. Normally tput uses tparm (3X) to
perform the substitution. If no parameters are given for the
capability, tput writes the string without performing
the substitution.
-S
allows more than one capability
per invocation of tput. The capabilities must be
passed to tput from the standard input instead of
from the command line (see example). Only one capname
is allowed per line. The -S option changes the
meaning of the 0 and 1 boolean and string exit
codes (see the EXIT CODES section).
Again,
tput uses a table and the presence of parameters in
its input to decide whether to use tparm (3X), and
how to interpret the parameters.
-V
reports the version of ncurses
which was used in this program, and exits.
init
If the terminfo database is present and an entry
for the user’s terminal exists (see
-Ttype, above), the following will
occur:
(1)
if present, the terminal’s
initialization strings will be output as detailed in the
terminfo(5) section on Tabs and
Initialization,
(2)
any delays (e.g., newline) specified in the entry will
be set in the tty driver,
(3)
tabs expansion will be turned on or off according to the
specification in the entry, and
(4)
if tabs are not expanded, standard tabs will be set
(every 8 spaces).
If an entry
does not contain the information needed for any of the four
above activities, that activity will silently be
skipped.
reset
Instead of putting out
initialization strings, the terminal’s reset strings
will be output if present (rs1, rs2,
rs3, rf). If the reset strings are not
present, but initialization strings are, the initialization
strings will be output. Otherwise, reset acts
identically to init.
longname
If the terminfo database
is present and an entry for the user’s terminal exists
(see -Ttype above), then the long name
of the terminal will be put out. The long name is the last
name in the first line of the terminal’s description
in the terminfo database [see term(5)].
If tput
is invoked by a link named reset, this has the same
effect as tput reset. See tset for comparison,
which has similar behavior.
diagnostics
tput prints the following error messages and sets the
corresponding exit codes.
exit codes
If the -S option is used, tput checks for errors
from each line, and if any errors are found, will set the exit
code to 4 plus the number of lines with errors. If no errors are
found, the exit code is 0. No indication of which line
failed can be given so exit code 1 will never appear. Exit
codes 2, 3, and 4 retain their usual
interpretation. If the -S option is not used, the exit
code depends on the type of capname:
boolean
a value of 0 is set for TRUE and 1 for FALSE.
string
a value of 0 is set if the capname is defined for
this terminal type (the value of capname is
returned on standard output); a value of 1 is set if
capname is not defined for this terminal type
(nothing is written to standard output).
integer
a value of 0 is always set, whether or not capname
is defined for this terminal type. To determine if
capname is defined for this terminal type, the user
must test the value written to standard output. A value of
-1 means that capname is not defined for this
terminal type.
other
reset or init may fail to find their respective
files. In that case, the exit code is set to 4 + errno.
Any other exit code indicates an error; see the DIAGNOSTICS
section.
files
/etc/terminfo
compiled terminal description database
/usr/share/tabset/*
tab settings for some terminals, in a format appropriate to be
output to the terminal (escape sequences that set margins and
tabs); for more information, see the "Tabs and Initialization"
section of terminfo(5)
portability
The longname and -S options, and the
parameter-substitution features used in the cup example,
are not supported in BSD curses or in AT&T/USL curses before
SVr4.
X/Open documents only the operands for clear, init
and reset. In this implementation, clear is part of
the capname support. Other implementations of tput
on SVr4-based systems such as Solaris, IRIX64 and HPUX as well as
others such as AIX and Tru64 provide support for capname
operands. A few platforms such as FreeBSD and NetBSD recognize
termcap names rather than terminfo capability names in their
respective tput commands.
see also
clear ,
stty , tabs , terminfo.
This describes
ncurses version 5.9 (patch 20110404).