使用tput创建屏幕输出
2016-12-01 21:33
239 查看
tput与terminfo
tput 命令将通过 terminfo 数据库对您的终端会话进行初始化和操作。通过使用 tput,您可以更改几项终端功能,如移动或更改光标、更改文本属性,以及清除终端屏幕的特定区域。UNIX 系统上的 terminfo 数据库用于定义终端和打印机的属性及功能,包括各设备(例如,终端和打印机)的行数和列数以及要发送至该设备的文本的属性。
UNIX 中的几个常用程序都依赖 terminfo 数据库提供这些属性以及许多其他内容,其中包括 vi 和 emacs 编辑器以及 curses 和 man 程序。
tput常用法
tput默认通过$TERM的值来指示终端类型,但我们也可以通过-T $Type来指定终端类型。不过一般来说都没有这个必要。
下面的用法中都上略对-T参数的说。
tput capname [parameters]: 这是tput最常用的方式,具体用法见下一章.
tput init: 初始化终端,在使用tput前一般会先执行该命令
tput reset: 重置终端属性为默认值
tput clear: 清屏
tput -S: 从stdin中读取指令,可以支持一次性设置多个指令,但必须保证一个指令一行.
tput的使用
tput一般用于作三件事情: 设置终端属性,获取终端属性以及判断终端是否支持某项能力.但请记住,tput并不支持设置颜色!
另外,在使用tput的输出值时,请一定先保证tput的返回值为0!
设置终端属性
tput主要是通过输出控制码字符串来实现一些特殊终端效果的.bel: 警铃
blink: 进入闪烁模式
bold: 进入粗体模式
civis: 隐藏鼠标
cnorm: 取消隐藏鼠标
clear: 清屏
cup rc: 将光标移动到第r行,第c列
el: 清除到行尾
ell: 清除到行首
smso: 进入凸出模式
rmso: 退出凸出模式
smul: 进入下划线模式
rmul: 退出下划线模式
sc: 保存光标当前位置
rc: 回复光标最后保存的位置
rev: 进入反转模式
sgr0: 回复正常显示
setf n/setbn: 设置前景色/背景色.$n为在terminfo数据库中的颜色数值,一般对应关系为:
数值 | 颜色 |
---|---|
0 | 黑色 |
1 | 蓝色 |
2 | 绿色 |
3 | 青色 |
4 | 红色 |
5 | 洋红色 |
6 | 黄色 |
7 | 白色 |
下面是一个例子
#!/bin/bash BOLD=$(tput bold) REV=$(tput rev) NORMAL=$(tput sgr0) CURSOR_OFF=$(tput civis) CURSOR_ON=$(tput cnorm) tput init tput clear echo $CURSOR_OFF tput cup 2 15 echo -e "${BOLD}粗体效果{NORMAL}\n" echo "${REV}反转效果${NORMAL}" echo $CURSOR_ON
获取终端属性
tput会输出一个数字,表示该属性的值.cols: 获取终端一行有多少列字符
lines: 获取终端一列有多少行字符
it: 终端的TAB相当于几个空格
下面是一个例子
echo "The terminal is $(tput cols) x $(tput lines)" The terminal is x
判断终端是否存在某项能力
tput会通过返回值来表示是否具有这项能力(0表示true,1表示false).chts: 光标是否不可见
hs: 终端是否具有状态行
下面是一个例子:
if tput hs;then echo "your terminal has a status lne" else echo "your terminal has NO status line" fi your terminal has NO status line
相关文章推荐
- 创建屏幕输出:tput
- 当使用new B()创建B的实例时,产生什么输出
- 非程序员的GNU Emacs使用心得......Shell Mode 第7集 向前搜索屏幕输出
- 黑马程序员---------------------创建ArrayList对象,添加5个元素,使用Iterator遍历输出
- 创建子进程时fork()上面的内容为什么在屏幕上只打印一次,而在输出到文件时为什么打印了两次。
- 创建ArrayList对象,添加5个元素,使用Iterator遍历输出
- 使用jdom创建xml文本并格式化输出为字符串xml
- 动态创建字符数组,且输出字符数组奇数位--使用指针
- struts1 使用poi组件 读取excel文件,创建excel ,输出excel文件
- 使用FOR循环语句在屏幕上输出一个由星号组成的直角三角形
- 创建屏幕DC并在上面输出文字
- 使用jQuery和CSS3创建一个全屏幕幻灯效果
- 使用jQuery和CSS3创建一个全屏幕幻灯效果
- linux shell编程指南第二十一章------创建屏幕输出
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建输出验证码图片的控制器
- 使用GStreamer作v4l2摄像头采集和输出到YUV文件及屏幕的相关测试
- 使用Reflection把iOS屏幕镜像输出至Mac录视频
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建输出验证码图片的控制器
- "黑马程序员"基础测试:创建ArrayList对象,添加五个元素,使用Iterator遍历输出
- 安卓弹出使用Dialog创建的对话框之后触摸屏幕就消失了的解决方法