您的位置:首页 > 编程语言 > PHP开发

使用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白色
setaf n/setabn: 使用ANSI的转义字符来设置前景色/背景色.

下面是一个例子

#!/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 shell
相关文章推荐