概述
编写命令行shell脚本时,总是免不了处理当前终端的相关信息,比如行数、列数、光标位置、遮盖的密码字段等。tput
命令可以采集终端信息,并进行一些设置如移动或更改光标、更改文本属性,以及清除终端屏幕的特定区域。
语法
该命令的语法如下:
用法:
tput [-Ttype] capname [parms ... ]
tput [-Ttype] init
tput [-Ttype] reset
tput [-Ttype] longname
tput -S <<
tput -V
(1)字符串输出参数设置
bel 警铃
blink 闪烁模式
bold 粗体
civis 隐藏光标
clear 清屏
cnorm 不隐藏光标
cup 移动光标到屏幕位置(x,y)
el 清除到行尾
ell 清除到行首
smso 启动突出模式
rmso 停止突出模式
smul 开始下划线模式
rmul 结束下划线模式
sc 保存当前光标位置
rc 恢复光标到最后保存位置
sgr0 正常屏幕
rev 逆转视图
(2)数字输出参数设置
cols 列数目
ittab 设置宽度
lines 屏幕行数
(3)布尔输出参数设置
chts 光标不可见
hs 具有状态行
使用
获取终端的行数和列数
获取当前终端的行数和列数,命令格式如下:
# 获取终端的列数
tput cols
# 获取终端的行数
tput lines
打印当前的终端名
打印当前的终端名,命令如下:
# 语法
tput longname
将光标移动到指定坐标处
将光标移动到指定坐标的语法如下:
# 语法
tput cup x坐标 y坐标
# 示例,移动到坐标(20,50)处
tput cup 20 50
设置终端背景色
可以设置终端的背景色,命令格式如下:
# 语法
tput setb n
# 示例,设置背景色为红色
tput setb 4
通常情况下,分配的数值与颜色的对应关系如下,但是可能会因 UNIX 系统的不同而异:
- 0:黑色
- 1:蓝色
- 2:绿色
- 3:青色
- 4:红色
- 5:洋红色
- 6:黄色
- 7:白色
注意,如果在 XShell 中没有显示成功,可以调下配色方案,Black on White
是不会显示成功的。
修改前景色
如果要修改终端的前景色(即文本的颜色),命令格式如下:
# 语法
tput setf n
# 示例,修改文本颜色为黄色
tput setf 6
反显当前的配色方案
即如果当前的背景色是红色,前景色是黄色,那么反显之后是背景色是黄色,前景色是红色。命令格式如下:
tput rev
设置文本样式为粗体
如果要设置文本样式为加粗,命令格式如下:
tput bold
设置下划线的起止
如果要设置文本的下划线,可以通过如下命令:
# 设置下划线的开始
tput smul
# 设置下划线的结束
tput rmul
删除从当前光标位置到行尾的所有内容
如果要删除从当前光标位置到行尾的所有内容,命令格式如下:
tput ed
清屏
等同于 clear
命令。格式如下:
tput clear
设置光标可见和不可见
如果要设置光标可见和不可见,命令格式如下:
# 设置光标不可见
tput civis
# 设置光标可见
tput cnorm
重置终端设置
如果要重置所有的终端设置如颜色字体等设置,可以通过如下命令:
tput reset