zoukankan      html  css  js  c++  java
  • tput 命令行使用说明

    什么是 tput?

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


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


    命令行使用说明:

    1.文本属性

    tput Color Capabilities:
    
    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
    例子:使输出的字符串有颜色,底色,加粗
    #!/bin/bash
    
    printf $(tput setaf 2; tput bold)'color show
    
    '$(tput sgr0)
    
    for((i=0; i<=7; i++)); do
    	echo $(tput setaf $i)"show me the money"$(tput sgr0)
    done
    
    printf '
    '$(tput setaf 2; tput setab 0; tput bold)'background color show'$(tput sgr0)'
    
    '
    
    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


    输出格式控制函数:
    #!/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
    "
    }
    
    format_output "Yesterday Once More" 2 5 1 1
    
    exit 0

    2.光标属性
    #!/bin/bash
    
    tput clear # 清屏
    
    tput sc # 保存当前光标位置
    
    tput cup 10 13 # 将光标移动到 row col
    
    tput civis # 光标不可见
    
    tput cnorm # 光标可见
    
    tput rc # 显示输出
    
    exit 0
    例子:
    #!/bin/bash
    # clear the screen
    tput clear
    # Move cursor to screen location X,Y (top left is 0,0)
    tput cup 3 15
    # Set a foreground colour using ANSI escape
    tput setaf 3
    echo "XYX Corp LTD."
    tput sgr0
    tput cup 5 17
    # Set reverse video mode
    tput rev
    echo "M A I N - M E N U"
    tput sgr0
    tput cup 7 15
    echo "1. User Management"
    tput cup 8 15
    echo "2. Service Management"
    tput cup 9 15
    echo "3. Process Management"
    tput cup 10 15
    echo "4. Backup"
    # Set bold mode
    tput bold
    tput cup 12 15
    read -p "Enter your choice [1-4] " choice
    tput clear
    tput sgr0
    tput rc
    
    exit 0

  • 相关阅读:
    解码.NET 2.0配置之谜(二)
    .NET (C#) Internals: Delegates (1)
    .NET (C#) Internals: Delegates (2)
    Windows Vista Beta 2 尝鲜
    assembly 需要 unload 和 update 的时候怎么办?测试工程
    让 NDoc 1.3 支持.NET 2.0 程序集,泛型输出和 Visual studio 2005 解决方案导入
    号召,有兴趣做博客园自己的网络游戏的请举手..
    将执行文件转化为bat批处理文件的工具(批处理文件方式提供)
    ISAPI Filter实现的防盗链程序终于完工
    1分钟破解3dState '学习版'得一些版权信息。
  • 原文地址:https://www.cnblogs.com/fdipzone/p/3715094.html
Copyright © 2011-2022 走看看