Linux中用于更改光标和文本属性的tput命令使用详解
tput 命令将通过 terminfo 数据库对您的终端会话进行初始化和操作。通过使用 tput,您可以更改几项终端功能,如移动或更改光标、更改文本属性,以及清除终端屏幕的特定区域。与 UNIX 中的大多数命令一样,tput 命令既可以用在 shell 命令行中也可以用在 shell 脚本中。为让您更好地理解 tput,本文首先从命令行讲起,然后紧接着讲述 shell 脚本示例。tput命令将通过 terminfo 数据库对您的终端会话进行初始化和操作。通过使用tput您可以更改几项终端功能,如移动或更改光标、更改文本属性,以及清除终端屏幕的特定区域。我们先看看它的常用参数:
参数
(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 具有状态行
应用
光标属性
在 UNIX shell 脚本中或在命令行中,移动光标或更改光标属性可能是非常有用的。有些情况下,您可能需要输入敏感信息(如密码),或在屏幕上两个不同的区域输入信息。在此类情况下,使用 tput 可能会对您有所帮助。
移动光标
使用 tput 可以方便地实现在各设备上移动光标的位置。通过在 tput 中使用 cup 选项,或光标位置,您可以在设备的各行和各列中将光标移动到任意 X 或 Y 坐标。设备左上角的坐标为 (0,0)。
要在设备上将光标移动到第 5 列 (X) 的第 1 行 (Y),只需执行 tput cup 5 1。另一个示例是 tput cup 23 45,此命令将使光标移动到第 23 列上的第 45 行。
移动光标并显示信息
另一种有用的光标定位技巧是移动光标,执行用于显示信息的命令,然后返回到前一光标位置:
(tput sc ; tput cup 23 45 ; echo “Input from tput/echo at 23/45” ; tput rc)
下面我们分析一下 subshell 命令:
tput sc
必须首先保存当前的光标位置。要保存当前的光标位置,请包括 sc 选项或“save cursor position”。
tput cup 23 45
在保存了光标位置后,光标坐标将移动到 (23,45)。
echo “Input from tput/echo at 23/45”
将信息显示到 stdout 中。
tput rc
在显示了这些信息之后,光标必须返回到使用 tput sc 保存的原始位置。要使光标返回到其上次保存的位置,请包括 rc 选项或“restore cursor position”。
注意:由于本文首先详细介绍了通过命令行执行 tput,因此您可能会觉得在自己的 subshell 中执行命令要比单独执行每条命令然后在每条命令执行之前显示提示更简洁。
更改光标的属性
在向某一设备显示数据时,很多时候您并不希望看到光标。将光标转换为不可见可以使数据滚动时的屏幕看起来更整洁。要使光标不可见,请使用 civis 选项(例如,tput civis)。在数据完全显示之后,您可以使用 cnorm 选项将光标再次转变为可见。
文本属性
更改文本的显示方式可以让用户注意到菜单中的一组词或警惕用户注意某些重要的内容。您可以通过以下方式更改文本属性:使文本加粗、在文本下方添加下划线、更改背景颜色和前景颜色,以及逆转颜色方案等。
要更改文本的颜色,请使用 setb 选项(用于设置背景颜色)和 setf 选项(用于设置前景颜色)以及在 terminfo 数据库中分配的颜色数值。通常情况下,分配的数值与颜色的对应关系如下,但是可能会因 UNIX 系统的不同而异:
0:黑色
1:蓝色
2:绿色
3:青色
4:红色
5:洋红色
6:黄色
7:白色
执行以下示例命令可以将背景颜色更改为黄色,将前景颜色更改为红色:
tput setb 6
tput setf 4
要反显当前的颜色方案,只需执行 tput rev。
有时,仅为文本着色还不够,也就是说,您想要通过另一种方式引起用户的注意。可以通过两种方式达到这一目的:一是将文本设置为粗体,二是为文本添加下划线。
要将文本更改为粗体,请使用 bold 选项。要开始添加下划线,请使用 smul 选项。在完成显示带下划线的文本后,请使用 rmul 选项。
相关文章
- win7系统中运行旧版CAD光标不停闪烁怎么办?win7系统安装了旧版本的cad,打开以后,发现光标不断闪烁,该怎么解决呢?下面分享两种方法,需要的朋友可以参考下2016-10-13
- WinXP光标变粗怎么办?最近有朋友们遇到这个问题,下面小编就给大家带来WinXP电脑光标变粗的解决方法,一起来看看吧2016-08-31
- 一些用户可能对于光标浏览不太熟悉,但是这个功能对老年人来说是非常重要的,一起来看看WinXP系统电脑该如何启用光标浏览功能2016-08-24
Win8系统开机后鼠标光标不停闪烁无法正常输入文字的解决方法
有网友反映win8系统开机移动鼠标,发现鼠标光标不停闪烁,而且鼠标定位到一个位置后,无法正常输入文字,重新启动系统一段时间后,又变成这样,这是怎么回事?这种情况怎么2016-04-20Win10 Mobile系统键盘光标控制器怎么调整左右位置?
Win10 Mobile系统键盘光标控制器怎么调整左右位置?与相比WP8.1有了很大改进,并且人性化地加入了键盘光标控制器,允许用户按住中间的小圆点上下左右移动光标位置,下面分2015-08-13- 鼠标指针是有大有小的,是可调节的,也有少数情况下指针大小太小了或者太大了,看着很不习惯,甚至是不舒服,下面是具体的调节过程,需要的朋友可以看看2015-06-30
- 这篇文章主要介绍了Linux vim光标移动快捷键,vim的技巧太多了,本文就摘取光标移动这一项单独总结它的快捷键,需要的朋友可以参考下2015-06-25
- 在WP10虚拟键盘的左下角,我们发现了一个蓝色的“点”,这颜色应该是与系统配色相同,我们暂且称之为“定位点”下面就和小编一起来了解下吧2015-01-25
- Ubuntu14更新后无法进入系统卡在光标界面解怎么办?本人安装的是win7和ubuntu14双系统。昨天早上打开本子,选好系统发现,电脑卡在光标界面不动了,进不去了,下面分享这个2015-01-15
- 不少用户都反馈win10系统的默认光标太小了,那么Win10光标大小怎么设置?下面小编就给大家带来Win10设置光标大小的方法,一起来看看吧2016-12-13
最新评论