March 20, 2024

tput命令:终端控制神器

在Linux系统中,终端是我们与系统进行交互的主要工具。而tput命令,作为终端控制的神器,可以帮助我们更好地管理和控制终端的输出,优化Shell脚本的用户体验。本文将详细介绍tput命令的用法和日常使用示例。

tput命令简介

tput命令查询terminfo数据库以获取与终端相关信息,使Shell可以使用终端相关功能和信息的值、初始化或重置终端、或返回请求的终端类型的长名称。该数据库包含了各种终端类型的特性信息。

tput命令用法

tput命令的基本语法如下:


tput [-Ttype] capname [parameters]
tput [-Ttype] clear | init | reset | longname
tput -S <<

-Ttype:指定终端的类型。通常,此选项是不必要的,因为默认值取自环境变量TERM。

capname:是指在terminfo文件中定义的各个终端功能属性的名称。常用的如:clear、cup、cols等,可以使用infocmp命令查看所有的capname。

-S:从标准输入而不是从命令行将功能属性名称传递给tput。

tput日常使用示例

清除当前终端的屏幕:


tput clear

将光标移动到第0行第0列的位置(屏幕的左上角,通常称为“主页”光标位置):


tput cup 0 0

根据环境变量TERM中的终端类型初始化终端:


tput init

打印当前终端的列数:


tput cols

打印当前终端的行数:


tput lines

突出显示内容:


tput smso

关闭突出显示:


tput rmso

仅对输出内容突出显示:


#设置变量bold,以开始突出模式序列
bold=`tput smso`
#设置变量offbold,以结束突出模式序列
offbold=`tput rmso`
#突出模式输出
echo ${bold}突出${offbold}模式

开始下划线模式:


tput smul

结束下划线模式:


tput rmul

打印终端类型的长名称:


tput longname

使用标准输入:


tput -S < clear
> cup 1 1
> !

此示例显示tput在一次调用中处理多个功能。它清除屏幕,将光标移动到第1行第1列的位置。此例中标准输入的内容为两个感叹号(!)之间的行,不含重定向符号(>)。

改变文本颜色:


# 将文本颜色设置为红色
tput setaf 1
# 将文本颜色设置为绿色
tput setaf 2
# 将文本颜色设置为棕色
tput setaf 3

开启粗体模式:


tput bold

恢复为默认样式:


tput sgr0

sgr0代表“select graphic rendition 0”,它会重置所有之前设置的文本属性,包括粗体、下划线、颜色等,回到终端的默认状态。

0 comments:

VxWorks

Blog Archive