创建屏幕输出-tput基础
时间:2004-12-26 来源:wingger
用户可以使用s h e l l脚本创建交互性的、专业性强的屏幕输出。要实现这一点,系统上需要一个彩色监视器和t p u t命令。
本章内容有:
• tput命令。
• 使用转义序列和产生控制码。
• 使用颜色。
作者写这本书时,遇到了t p u t命令的三种不同变形。至今为止最好的是GNU tput,如果没有这个版本,首先下载它并安装在你的系统里。t p u t使用文件/ e t c / t e r m i n f o或/ e t c / t e r m c a p,这样就可以在脚本中使用终端支持的大部分命令了。
虽然t p u t不识别颜色设置,但是可以使用控制字符实现这一点。
1 tput
1.1 字符串输出
下面是大部分常用字符串:
名字含义
b e l 警铃
b l i n k 闪烁模式
b o l d 粗体
c i v i s 隐藏光标
c l e a r 清屏
c n o r m 不隐藏光标
c u p 移动光标到屏幕位置( x,y)
e l 清除到行尾
e l l 清除到行首
s m s o 启动突出模式
r m s o 停止突出模式
s m u l 开始下划线模式
r m u l 结束下划线模式
s c 保存当前光标位置
rc 恢复光标到最后保存位置
s g r 0 正常屏幕
r e v 逆转视图
1.2 数字输出
以下是大部分常用数字输出。
名字含义
c o l s 列数目
i t t a b设置宽度
l i n e s 屏幕行数
1.3 布尔输出
在t p u t中只有两种布尔操作符。
名字含义
c h t s 光标不可见
h s 具有状态行
2 tput用法
上面讲过了可能用到的t p u t的大多数常用名。现在学习在一段脚本中使用t p u t。
2.1 设置tput命令
可以取得所有t p u t名字输出,将其保存为更有意义的变量名。格式如下:
variable_name='tput name'
2.2 使用布尔输出
可以在i f语句中使用布尔型t p u t输出。
[sam@Linux_chenwy etc]$ STATUS_LINE='tput hs'
[sam@Linux_chenwy etc]$ if $STATUS_LINE;then
> echo "your terminal has a status line"
> else
> echo "your terminal has NO status line"
> fi
your terminal has NO status line
2.3 在脚本中使用tput
以下脚本设置tput bel和c l为更有意义的变量名。
[sam@Linux_chenwy sam]$ cat tput1
#!/bin/sh
BELL=`tput bel`
CLEAR=`tput clear`
echo $BELL
echo $CLEAR
下面脚本改变两个视图属性,并将光标关闭和打开。
[sam@Linux_chenwy sam]$ cat tput2
#!/bin/sh
BOLD=`tput bold`
REV=`tput rev`
NORMAL=`tput sgr0`
CURSOR_OFF=`tput civis`
CURSOR_ON=`tput cnorm`
tput init
echo $CURSOR_OFF
echo "${BOLD} WELCOME TO THE PIZZA PLACE${NORMAL}"
echo -e "n${REV} WE ARE OPEN 7 DAYS A WEEK${NORMAL}"
echo $CURSOR_ON
[sam@Linux_chenwy sam]$ ./tput2
WELCOME TO THE PIZZA PLACE
WE ARE OPEN 7 DAYS A WEEK #底色与字体颜色反转
在使用t p u t前,需要在脚本或命令行中使用t p u t命令初始化终端。$ tput init
t p u t产生三种不同的输出:字符型、数字型和布尔型(真/假)。以下分别介绍其使用功