tput 命令将通过 terminfo 数据库对您的终端会话进行初始化和操作。通过使用 tput,您可以更改几项终端功能,如移动或更改光标、更改文本属性,以及清除终端屏幕的特定区域。
UNIX 系统上的 terminfo 数据库用于定义终端和打印机的属性及功能,包括各设备(例如,终端和打印机)的行数和列数以及要发送至该设备的文本的属性。 UNIX 中的几个常用程序都依赖 terminfo 数据库提供这些属性以及许多其他内容,其中包括 vi 和 emacs 编辑器以及 curses 和 man 程序。
tput 默认通过 $TERM 的值来指示终端类型,但我们也可以通过 -T $Type 来指定终端类型。不过一般来说都没有这个必要。
下面的用法中都上略对 -T 参数的说。
tput 一般用于作三件事情:设置终端属性,获取终端属性以及判断终端是否支持某项能力。
但请记住,某些系统(比如 AIX)中的 tput 并不支持设置颜色!
另外,在使用 tput 的输出值时,请一定先保证 tput 的返回值为 0
tput 主要是通过输出控制码字符串来实现一些特殊终端效果的.
设置前景色/背景色,$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 会输出一个数字,表示该属性的值.
下面是一个例子
echo "The terminal is $(tput cols) x $(tput lines)"
The terminal is 80 x 24
tput 会通过返回值来表示是否具有这项能力(0 表示 true,1 表示 false)
下面是一个例子:
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
