请选择 进入手机版 | 继续访问电脑版

[LINUX] Linux中用于更改光标和文本属性的tput下令 使用 详解

[复制链接]
查看154 | 回复21 | 2021-9-4 22:45:32 | 显示全部楼层 |阅读模式

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 选项。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

avatar 123457265 | 2021-9-18 08:07:55 | 显示全部楼层
admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的网站,他卖的服务器是永久的,我们的网站用 服务器都是在这家买的,你可以去试试。访问地址:http://fwq.mxswl.com
回复

使用道具 举报

avatar earth20011 | 2021-9-18 20:28:33 | 显示全部楼层
admin楼主又闹绯闻了!
回复

使用道具 举报

avatar 东阿制造 | 2021-9-19 01:29:16 | 显示全部楼层
admin楼主内心很强大!
回复

使用道具 举报

avatar 爱晚风愁制 | 2021-9-20 18:09:44 | 显示全部楼层
admin楼主是一个神奇的青年!
回复

使用道具 举报

avatar 宇宙无限 | 2021-10-3 08:36:50 | 显示全部楼层
admin楼主最近很消极啊!
回复

使用道具 举报

avatar 茹蕙zx | 2021-10-5 10:51:18 | 显示全部楼层
上次给admin楼主开的药,你都吃完了?
回复

使用道具 举报

avatar 李中文1 | 2021-10-10 20:52:17 | 显示全部楼层
缺乏激情了!
回复

使用道具 举报

avatar 上山打老虎667 | 2021-10-11 14:52:57 | 显示全部楼层
鸟大了,什么林子都敢进啊!
回复

使用道具 举报

avatar 一身似水厝 | 2021-10-11 18:00:42 | 显示全部楼层
经典,收藏了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则