创建屏幕输出-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产生三种不同的输出:字符型、数字型和布尔型(真/假)。以下分别介绍其使用功










