手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

tput(1)

名称

tput - 初始化终端或查询 terminfo 数据库

用法概要

tput [-T type] capname [parm]...
tput -S <<

描述

tput 实用程序可使用 terminfo 数据库为 shell 提供依赖于终端的功能和信息的值(请参见 sh(1));清除、初始化或重置终端;返回所请求终端类型的长名称。如果功能属性 (capname) 的类型是字符串,tput 将输出字符串;如果属性类型是整数,将输出整数。如果属性类型是布尔值,则 tput 只是设置退出状态(如果终端有此功能,将退出状态设置为 0,表示 TRUE;如果无此功能,将设置为 1,表示 FALSE),而不会生成输出。使用标准输出中返回的值之前,用户应该测试退出状态($?,请参见 sh(1)),以确保退出状态为 0。请参见“退出状态”部分。

选项

支持以下选项:

–Ttype

表示终端的类型。通常,无需设置该选项,因为将从环境变量 TERM 中获取缺省值。如果指定了 –T,则不会引用 shell 变量 LINES 和 COLUMNS 以及层大小。

–S

允许每次调用 tput 处理多项功能。必须从标准输入而非命令行将功能传递到 tput(请参见“示例”部分的示例)。只允许每行包含一个 capname–S 可以更改 01 布尔值与字符串退出状态的含义(请参见“示例”部分)。

操作数

支持下列操作数:

capname

表示 terminfo 数据库中的功能属性。有关功能以及与每项功能关联的 capname 的完整列表,请参见 terminfo(4)

"C" 语言环境中的实现程序支持将以下字符串作为操作数:

clear

显示清除屏幕序列。

init

如果存在 terminfo 数据库而且存在用户终端的条目(请参见上文的 –Ttype),将发生以下情况:

  1. 终端的初始化字符串(如果存在)将为输出(is1is2is3ifiprog),

  2. 在 tty 驱动程序中设置条目中指定的任何延迟(例如换行符),

  3. 根据条目中的规范启用或禁用制表符扩展,

  4. 如果制表符未扩展,将设置标准制表符(每 8 个空格)。如果条目中不包含以上四项活动中任一项所需的信息,则无提示地跳过该活动。

reset

终端的重置字符串(如果存在,rs1rs2rs3rf)将为输出,而不是输出初始化字符串。如果不存在重置字符串但存在初始化字符串,初始化字符串将为输出。否则,reset 的运行方式与 init 相同。

longname

如果存在 terminfo 数据库而且存在用户终端的条目(请参见上文的 –Ttype),则终端的长名称将为输出。长名称是 terminfo 数据库中终端说明第一行中的最后一个名称(请参见 term(5))。

parm

如果属性是带有参数的某个字符串,则参数 parm 将实例化到该字符串中。纯数字参数将作为一个数字传递到属性。

示例

示例 1 根据 TERM 初始化终端

以下示例将根据环境变量 TERM 中终端的类型初始化终端。如 profile(4) 手册页中所述,导出环境变量 TERM 后应将该命令添加到所有用户的 .profile 中。

example% tput init
示例 2 重置终端

以下示例将重置 AT&T 5620 终端,覆盖环境变量 TERM 中终端的类型:

example% tput -T5620 reset
示例 3 移动光标

以下示例会发送将光标移至第 0 行、第 0 列(屏幕左上角,通常称为“起始”光标位置)的序列。

example% tput cup 0 0

接下来这个示例会发送将光标移至第 23 行、第 4 列的序列。

example% tput cup 23 4
示例 4 回显清除屏幕序列

以下示例将为当前终端回显清除屏幕序列。

example% tput clear
示例 5 显示列数

以下命令将显示当前终端的列数。

example% tput cols

以下命令将显示 450 终端的列数。

example% tput -T450 cols
示例 6 设置 shell 变量

以下示例将 shell 变量 bold 设置为当前终端的开始高亮模式序列,将 offbold 设置为结束高亮模式序列。该操作可能后跟一个提示符:

echo "${bold}Please type in your name: ${offbold}\c" 
example% bold='tput smso'
example% offbold='tput rmso'
示例 7 设置退出状态

以下示例将设置退出状态来指明当前终端是否为硬拷贝终端。

example% tput hc
示例 8 输出 terminfo 中的长名称

以下命令将输出 terminfo 数据库中环境变量 TERM 所指定终端类型的长名称。

example% tput longname
示例 9 一次调用处理多项功能

以下示例显示了一次调用 tput 处理多项功能。这几项功能依次为清除屏幕、将光标移至位置 1010 和启用 bold(高亮)模式。列表以行中单独出现的感叹号 (!) 结尾。

example% tput -S <<! 
> clear 
> cup 10 10
> bold 
> !

环境变量

有关影响 getopts 执行的以下环境变量的描述,请参见 environ(5):LANG、LC_ALL、LC_CTYPE、LC_MESSAGES 和 NLSPATH。

TERM

确定终端类型。如果未设置该变量或该变量为空而且未指定 –T 选项,则会使用未指定的缺省终端类型。

退出状态

将返回以下退出值:

0
  • 如果 capname 的类型是布尔值而且未指定 –S,则表示 TRUE

  • 如果 capname 的类型是字符串且未指定 –S,则表示为该终端类型定义了 capname

  • 如果 capname 的类型是布尔值或字符串且指定了 –S,则表示所有行都已成功处理。

  • capname 的类型是整数。

  • 请求的字符串已成功写入。

1
  • 如果 capname 的类型是布尔值且未指定 –S,则表示 FALSE

  • 如果 capname 的类型是字符串且未指定 –S,则表示没有为该终端类型定义 capname

2

用法错误。

3

没有关于指定的终端类型的信息。

4

指定的操作数无效。

>4

出现错误。

−1

capname 是一个未在 terminfo 数据库中指定的数字变量。例如,tput –T450 行和 tput –T2621 xmc。

文件

/usr/include/curses.h

curses(3CURSES) 标头

/usr/include/term.h

terminfo 标头

/usr/lib/tabset/*

某些终端的制表符设置,其格式适合输出到终端(用于设置边距和制表符的转义序列)。有关更多信息,请参见 terminfo(4) 的“制表符和初始化”部分

/usr/share/lib/terminfo/?/*

编译的终端说明数据库

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os
接口稳定性
Committed(已确定)
标准
请参见 standards(5)

另请参见

clear(1)sh(1)stty(1)tabs(1)curses(3CURSES)profile(4)terminfo(4)attributes(5)environ(5)standards(5)term(5)