tput [-T type] capname [parm]...
tput -S <<
tput 实用程序可使用 terminfo 数据库为 shell 提供依赖于终端的功能和信息的值(请参见 sh(1));清除、初始化或重置终端;返回所请求终端类型的长名称。如果功能属性 (capname) 的类型是字符串,tput 将输出字符串;如果属性类型是整数,将输出整数。如果属性类型是布尔值,则 tput 只是设置退出状态(如果终端有此功能,将退出状态设置为 0,表示 TRUE;如果无此功能,将设置为 1,表示 FALSE),而不会生成输出。使用标准输出中返回的值之前,用户应该测试退出状态($?,请参见 sh(1)),以确保退出状态为 0。请参见“退出状态”部分。
支持以下选项:
表示终端的类型。通常,无需设置该选项,因为将从环境变量 TERM 中获取缺省值。如果指定了 –T,则不会引用 shell 变量 LINES 和 COLUMNS 以及层大小。
允许每次调用 tput 处理多项功能。必须从标准输入而非命令行将功能传递到 tput(请参见“示例”部分的示例)。只允许每行包含一个 capname。–S 可以更改 0 和 1 布尔值与字符串退出状态的含义(请参见“示例”部分)。
支持下列操作数:
表示 terminfo 数据库中的功能属性。有关功能以及与每项功能关联的 capname 的完整列表,请参见 terminfo(4)。
"C" 语言环境中的实现程序支持将以下字符串作为操作数:
显示清除屏幕序列。
如果存在 terminfo 数据库而且存在用户终端的条目(请参见上文的 –Ttype),将发生以下情况:
终端的初始化字符串(如果存在)将为输出(is1、is2、is3、if、iprog),
在 tty 驱动程序中设置条目中指定的任何延迟(例如换行符),
根据条目中的规范启用或禁用制表符扩展,
如果制表符未扩展,将设置标准制表符(每 8 个空格)。如果条目中不包含以上四项活动中任一项所需的信息,则无提示地跳过该活动。
终端的重置字符串(如果存在,rs1、rs2、rs3、rf)将为输出,而不是输出初始化字符串。如果不存在重置字符串但存在初始化字符串,初始化字符串将为输出。否则,reset 的运行方式与 init 相同。
如果存在 terminfo 数据库而且存在用户终端的条目(请参见上文的 –Ttype),则终端的长名称将为输出。长名称是 terminfo 数据库中终端说明第一行中的最后一个名称(请参见 term(5))。
如果属性是带有参数的某个字符串,则参数 parm 将实例化到该字符串中。纯数字参数将作为一个数字传递到属性。
以下示例将根据环境变量 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 处理多项功能。这几项功能依次为清除屏幕、将光标移至位置 10、10 和启用 bold(高亮)模式。列表以行中单独出现的感叹号 (!) 结尾。
example% tput -S <<! > clear > cup 10 10 > bold > !
有关影响 getopts 执行的以下环境变量的描述,请参见 environ(5):LANG、LC_ALL、LC_CTYPE、LC_MESSAGES 和 NLSPATH。
确定终端类型。如果未设置该变量或该变量为空而且未指定 –T 选项,则会使用未指定的缺省终端类型。
将返回以下退出值:
如果 capname 的类型是布尔值而且未指定 –S,则表示 TRUE。
如果 capname 的类型是字符串且未指定 –S,则表示为该终端类型定义了 capname。
如果 capname 的类型是布尔值或字符串且指定了 –S,则表示所有行都已成功处理。
capname 的类型是整数。
请求的字符串已成功写入。
如果 capname 的类型是布尔值且未指定 –S,则表示 FALSE。
如果 capname 的类型是字符串且未指定 –S,则表示没有为该终端类型定义 capname。
用法错误。
没有关于指定的终端类型的信息。
指定的操作数无效。
出现错误。
capname 是一个未在 terminfo 数据库中指定的数字变量。例如,tput –T450 行和 tput –T2621 xmc。
terminfo 标头
某些终端的制表符设置,其格式适合输出到终端(用于设置边距和制表符的转义序列)。有关更多信息,请参见 terminfo(4) 的“制表符和初始化”部分
编译的终端说明数据库
有关下列属性的说明,请参见 attributes(5):
|
clear(1)、sh(1)、stty(1)、tabs(1)、curses(3CURSES)、profile(4)、terminfo(4)、attributes(5)、environ(5)、standards(5)、term(5)