用户可以使用shell脚本创建交互性的,专业性强的屏幕输出.要实现这一点,系统上需要一个彩色监视器和tput命令.
1 tput
在使用tput前,需要在脚本或命令行中使用tput命令初始化终端.
$ tput init
tupt产生三种不同的输出:字符型,数字型和布尔型(真,假)
1.1 字符串输出
常用字符串有:
名字 含义
bel 警铃
blink 闪烁模式
bold 粗体
civis 隐藏光标
clear 清屏
等等
1.2 数字输出
常用数字输出:
名字 含义
cols 列数目
it tab设置宽度
lines 屏幕行数
1.3 布尔输出
在tput种只有两种布尔操作符
名字 含义
chts 光标不可见
hs 具有状态行
2 tput 用法
2.1 设置tput命令
可以取得所有tput名字输出,将其保存为更有意义的变量名.格式如下:
variable_name=’tupt name’
2.2 使用布尔输出
可以在if语句种使用布尔型tput输出.
STATUS_LINE=’tput hs’
if $STATUS_LINE; then
echo103f “your terminal has a status line”
else
echo “your terminal has NO status line”
fi
2.3 在脚本中使用tput
以下脚本设置tput bel和cl为更有意义的变量名.
$ vi tput1
#!/bin/bash
BELL=tput bel
CLEAR=tput cl
echo $BELL
echo $CLEAR
2.4 产生转义序列
所有控制字符均以一个转义序列开始,通常转义键后紧跟字符[.然后实际序列打开或关闭某终端属性.
2.5 光标位置
可以用tput将光标放在屏幕任意位置.格式为:
cup r c
r 为从上至下屏幕行数,c为穿过屏幕列数
最好将之编成函数,这样就可以把行和列的值传递给它.
2.6 在屏幕中心位置显示文本
在屏幕中心位置显示文本不是很麻烦.首先从tput中得到列数,然后算出所提供的字符串长度,从tput列数中减去该值,结果再除以2,所得结果可用于显示的字符串行数.
2.7 在脚本中使用功能键
使用cat命令可以查看发送的任意特殊键控制序列(F1,上箭头等),键入cat -v,然后按任意控制键,回车,在下一行就可以知道终端发送了什么功能键.结束后按<ctrl-c>退出.
2.8 使用颜色
对域使用颜色可以使数据输入屏幕看起来更加专业.显示前景或背景颜色格式为:
<ESCAPE> [background_number;foreground_number m
2.9 产生颜色
产生颜色需要在echo语句中嵌入控制字符.这种方法适用于带有彩色终端的任何系统.与在控制字符里一样,可以在echo语句里使用转义序列产生颜色.
要产生一个黑色背景加绿色前景色:
echo -e “\033[40;32m”
2.10 创建精致菜单
3 小结
使用tput命令可以增强应用外观及脚本的控制.颜色设置可以增加应用的专业性.注意使用颜色不要太过火,这也许对你来说很好,但其他用户使用这段脚本时看到这种屏幕设置也许会感到厌烦.可以使用和读取控制字符来增加脚本的灵活性,特别是对用户击键输入操作更是如此.