博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tput 命令行使用说明
阅读量:6463 次
发布时间:2019-06-23

本文共 2723 字,大约阅读时间需要 9 分钟。

什么是 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 escapetput setb [0-7] – Set a background colortput setaf [0-7] – Set a foreground color using ANSI escapetput setf [0-7] – Set a foreground colorColor Code for tput:0 – Black1 – Red2 – Green3 – Yellow4 – Blue5 – Magenta6 – Cyan7 – Whitetput Text Mode Capabilities:tput bold – Set bold modetput dim – turn on half-bright modetput smul – begin underline modetput rmul – exit underline modetput rev – Turn on reverse modetput smso – Enter standout mode (bold on rxvt)tput rmso – Exit standout modetput sgr0 – Turn off all attributes
例子:使输出的字符串有颜色,底色,加粗
#!/bin/bashprintf $(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)doneprintf '\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)doneexit 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\n"}format_output "Yesterday Once More" 2 5 1 1exit 0
2.光标属性
#!/bin/bashtput clear # 清屏tput sc # 保存当前光标位置tput cup 10 13 # 将光标移动到 row coltput civis # 光标不可见tput cnorm # 光标可见tput rc # 显示输出exit 0
例子:
#!/bin/bash# clear the screentput clear# Move cursor to screen location X,Y (top left is 0,0)tput cup 3 15# Set a foreground colour using ANSI escapetput setaf 3echo "XYX Corp LTD."tput sgr0tput cup 5 17# Set reverse video modetput revecho "M A I N - M E N U"tput sgr0tput cup 7 15echo "1. User Management"tput cup 8 15echo "2. Service Management"tput cup 9 15echo "3. Process Management"tput cup 10 15echo "4. Backup"# Set bold modetput boldtput cup 12 15read -p "Enter your choice [1-4] " choicetput cleartput sgr0tput rcexit 0

转载于:https://www.cnblogs.com/fdipzone/p/3715094.html

你可能感兴趣的文章
开篇,博客的申请理由
查看>>
Servlet 技术全总结 (已完成,不定期增加内容)
查看>>
[JSOI2008]星球大战starwar BZOJ1015
查看>>
centos 7 部署LDAP服务
查看>>
揭秘马云帝国内幕:马云的野心有多大
查看>>
iOS项目分层
查看>>
一个action读取另一个action里的session
查看>>
IntelliJ IDEA 注册码
查看>>
String字符串的截取
查看>>
DynamoDB Local for Desktop Development
查看>>
用javascript验证哥德巴赫猜想
查看>>
Shell编程-环境变量配置文件
查看>>
[Unity3d]DrawCall优化手记
查看>>
Struts2和Spring MVC的区别
查看>>
理解Javascript参数中的arguments对象
查看>>
p2:千行代码入门python
查看>>
bzoj1106[POI2007]立方体大作战tet*
查看>>
spring boot configuration annotation processor not found in classpath问题解决
查看>>
团队项目测试报告与用户反馈
查看>>
对软件工程课程的期望
查看>>