shell

put

什么是 tput?
tput 命令将通过 terminfo 数据库对您的终端会话进行初始化和操作。通过使用 tput,您可以更改几项终端功能,如移动或更改光标、更改文本属性,以及清除终端屏幕的特定区域。

什么是 terminfo 数据库?
UNIX 系统上的 terminfo 数据库用于定义终端和打印机的属性及功能,包括各设备(例如,终端和打印机)的行数和列数以及要发送至该设备的文本的属性。UNIX 中的几个常用程序都依赖 terminfo 数据库提供这些属性以及许多其他内容,其中包括 vi 和 emacs 编辑器以及 curses 和 man 程序。

1.文本属性 

tput setab [0-7] – Set a background color using ANSI escape  
tput setb [0-7] – Set a background color  
tput setaf [0-7] – Set a foreground color using ANSI escape  
tput setf [0-7] – Set a foreground color  
  
Color Code for tput:  
  
0 – Black  
1 – Red  
2 – Green  
3 – Yellow  
4 – Blue  
5 – Magenta  
6 – Cyan  
7 – White  
  
tput Text Mode Capabilities:  
  
tput bold – Set bold mode  
tput dim – turn on half-bright mode  
tput smul – begin underline mode  
tput rmul – exit underline mode  
tput rev – Turn on reverse mode  
tput smso – Enter standout mode (bold on rxvt)  
tput rmso – Exit standout mode  
tput sgr0 – Turn off all attributes  


例子:使输出的字符串有颜色,底色,加粗
[plain] view plain copy
#!/bin/bash  
  
printf $(tput setaf 2; tput bold)'color show\n\n'$(tput sgr0)  
  
for((i=0; i<=7; i++)); do  
    echo $(tput setaf $i)"show me the money"$(tput sgr0)  
done  
  
printf '\n'$(tput setaf 2; tput setab 0; tput bold)'background color show'$(tput sgr0)'\n\n'  
  
for((i=0,j=7; i<=7; i++,j--)); do  
    echo $(tput setaf $i; tput setab $j; tput bold)"show me the money"$(tput sgr0)  
done  
  
exit 0  




输出格式控制函数:
[plain] view plain copy
#!/bin/bash  
  
# $1 str       print string  
# $2 color     0-7 设置颜色  
# $3 bgcolor   0-7 设置背景颜色  
# $4 bold      0-1 设置粗体  
# $5 underline 0-1 设置下划线  
  
function format_output(){  
    str=$1  
    color=$2  
    bgcolor=$3  
    bold=$4  
    underline=$5  
    normal=$(tput sgr0)  
  
    case "$color" in  
        0|1|2|3|4|5|6|7)  
            setcolor=$(tput setaf $color;) ;;  
        *)  
            setcolor="" ;;  
    esac  
  
    case "$bgcolor" in  
        0|1|2|3|4|5|6|7)  
            setbgcolor=$(tput setab $bgcolor;) ;;  
        *)  
            setbgcolor="" ;;  
    esac  
  
    if [ "$bold" = "1" ]; then  
        setbold=$(tput bold;)  
    else  
        setbold=""  
    fi  
  
    if [ "$underline" = "1" ]; then  
        setunderline=$(tput smul;)  
    else  
        setunderline=""  
    fi  
  
    printf "$setcolor$setbgcolor$setbold$setunderline$str$normal\n"  
}  
  
format_output "Yesterday Once More" 2 5 1 1  
  
exit 0  


2.光标属性
[plain] view plain copy
#!/bin/bash  
  
tput clear # 清屏  
  
tput sc # 保存当前光标位置  
  
tput cup 10 13 # 将光标移动到 row col  
  
tput civis # 光标不可见  
  
tput cnorm # 光标可见  
  
tput rc # 显示输出  
  
exit 0  
阅读更多
个人分类: shell
想对作者说点什么? 我来说一句

shell讲义shell讲义

2011年09月27日 423KB 下载

SHELL资料_SHELL资料

2010年01月10日 1.59MB 下载

shell 编程shell 编程

2009年10月04日 286KB 下载

Shell源码(Shell源码)

2009年09月05日 19KB 下载

shell 入门 shell 入门

2010年04月15日 33KB 下载

shell shell练习 shell入门

2011年03月18日 514B 下载

The Korn Shell

2009年10月14日 474KB 下载

shell的编程shell的编程

2010年06月04日 2KB 下载

没有更多推荐了,返回首页

不良信息举报

shell

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭