热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用tput创建屏幕输出

tput与terminfotput命令将通过terminfo数据库对您的终端会话进行初始化和操作。通过使用tput,您可以更改几项终端功能,如移动或更

tput与terminfo

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

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

tput常用法

tput默认通过$TERM的值来指示终端类型,但我们也可以通过 -T $Type 来指定终端类型。不过一般来说都没有这个必要。

下面的用法中都上略对-T参数的说。

  • tput capname [parameters]: 这是tput最常用的方式,具体用法见下一章.
  • tput init: 初始化终端,在使用tput前一般会先执行该命令
  • tput reset: 重置终端属性为默认值
  • tput clear: 清屏
  • tput -S: 从stdin中读取指令,可以支持一次性设置多个指令,但必须保证一个指令一行.

tput的使用

tput一般用于作三件事情: 设置终端属性,获取终端属性以及判断终端是否支持某项能力.

但请记住,tput并不支持设置颜色!

另外,在使用tput的输出值时,请一定先保证tput的返回值为0!

设置终端属性

tput主要是通过输出控制码字符串来实现一些特殊终端效果的.

  • bel: 警铃
  • blink: 进入闪烁模式
  • bold: 进入粗体模式
  • civis: 隐藏鼠标
  • cnorm: 取消隐藏鼠标
  • clear: 清屏
  • cup rc: 将光标移动到第r,c列
  • el: 清除到行尾
  • ell: 清除到行首
  • smso: 进入凸出模式
  • rmso: 退出凸出模式
  • smul: 进入下划线模式
  • rmul: 退出下划线模式
  • sc: 保存光标当前位置
  • rc: 回复光标最后保存的位置
  • rev: 进入反转模式
  • sgr0: 回复正常显示
  • setf n/setbn: 设置前景色/背景色.$n为在terminfo数据库中的颜色数值,一般对应关系为:

    数值颜色
    0黑色
    1蓝色
    2绿色
    3青色
    4红色
    5洋红色
    6黄色
    7白色
  • setaf n/setabn: 使用ANSI的转义字符来设置前景色/背景色.

下面是一个例子

#!/bin/bashBOLD=$(tput bold)
REV=$(tput rev)
NORMAL=$(tput sgr0)
CURSOR_OFF=$(tput civis)
CURSOR_ON=$(tput cnorm)tput inittput clear
echo $CURSOR_OFF
tput cup 2 15
echo -e "${BOLD}粗体效果{NORMAL}\n"
echo "${REV}反转效果${NORMAL}"
echo $CURSOR_ON

获取终端属性

tput会输出一个数字,表示该属性的值.

  • cols: 获取终端一行有多少列字符
  • lines: 获取终端一列有多少行字符
  • it: 终端的TAB相当于几个空格

下面是一个例子

echo "The terminal is $(tput cols) x $(tput lines)"The terminal is x

判断终端是否存在某项能力

tput会通过返回值来表示是否具有这项能力(0表示true,1表示false).

  • chts: 光标是否不可见
  • hs: 终端是否具有状态行

下面是一个例子:

if tput hs;thenecho "your terminal has a status lne"
elseecho "your terminal has NO status line"
fiyour terminal has NO status line


推荐阅读
  • 手机上编写和运行PHP代码的最佳软件推荐 ... [详细]
  • 在 Linux 系统中,`/proc` 目录实现了一种特殊的文件系统,称为 proc 文件系统。与传统的文件系统不同,proc 文件系统主要用于提供内核和进程信息的动态视图,通过文件和目录的形式呈现。这些信息包括系统状态、进程细节以及各种内核参数,为系统管理员和开发者提供了强大的诊断和调试工具。此外,proc 文件系统还支持实时读取和修改某些内核参数,增强了系统的灵活性和可配置性。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 本文详细介绍了使用响应文件在静默模式下安装和配置Oracle 11g的方法。硬件要求包括:内存至少1GB,具体可通过命令`grep -i memtotal /proc/meminfo`进行检查。此外,还提供了详细的步骤和注意事项,确保安装过程顺利进行。 ... [详细]
  • Python学习:环境配置与安装指南
    Python作为一种跨平台的编程语言,适用于Windows、Linux和macOS等多种操作系统。为了确保本地已成功安装Python,用户可以通过终端或命令行界面输入`python`或`python3`命令进行验证。此外,建议使用虚拟环境管理工具如`venv`或`conda`,以便更好地隔离不同项目依赖,提高开发效率。 ... [详细]
  • 系统管理员可以通过多种方法实时监控Linux系统中的用户活动,包括当前已登录的用户及其正在进行的操作。利用特定的命令和工具,管理员可以轻松获取这些信息,确保系统的安全性和稳定性。例如,使用`who`、`w`或`last`等命令可以快速查看当前登录的用户及其活动详情。 ... [详细]
  • 在Linux环境中,通过编写Shell脚本来实现自定义命令的创建与激活,能够极大地简化服务器上多个子系统的管理操作。例如,通过简单的命令如“tt”,即可快速查看各个应用程序的名称及其运行状态,从而提高系统维护的效率和便捷性。 ... [详细]
  • 在 Red Hat 系统的启动过程中,首先运行的程序是 `/sbin/init`。该程序会读取 `/etc/inittab` 文件,并根据其中的配置进行系统的初始化工作。例如,它会根据设定的运行级别启动相应的服务和进程,确保系统能够顺利进入指定的运行状态。此外,`/sbin/init` 还负责管理系统关机和重启等操作,确保系统的稳定性和安全性。 ... [详细]
  • 在Linux/WSL环境中,本文对Shell任务的并行处理进行了详细的测试与分析。通过多种并行处理技术,如GNU Parallel和xargs,探讨了如何有效提升任务执行效率和系统资源利用率。实验结果表明,合理配置并行参数能够显著缩短任务完成时间,提高系统整体性能。此外,文章还介绍了Shell脚本编写的基本原则和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 利用Mac上的Remote Desktop Manager实现与Ubuntu 16.04及Windows 10的远程桌面连接优化方案
    随着远程办公需求的增加,如何在不同操作系统之间高效地进行远程桌面连接成为了一个重要问题。本文介绍了一种利用Mac上的Remote Desktop Manager实现与Ubuntu 16.04及Windows 10远程桌面连接的优化方案。通过详细的操作步骤和配置方法,帮助用户在多平台环境中顺利进行远程工作,避免常见的技术障碍。 ... [详细]
  • Panabit应用层流量管理解决方案
    Panabit是一款国内领先的应用层流量管理解决方案,提供高度开放且免费的专业服务,尤其擅长P2P应用的精准识别与高效控制。截至2009年3月25日,该系统已实现对多种网络应用的全面支持,有效提升了网络资源的利用效率和安全性。 ... [详细]
  • Shell 脚本中的数学运算与变量引用(第三部分)
    在本文中,我们将深入探讨 Shell 脚本中的数学运算和变量引用。Shell 提供了多种方法来进行数学计算,主要包括 `expr`、`$(( ))` 和 `let`。我们将详细解析这三种方法的具体应用和特点,帮助读者更好地理解和使用这些工具。 ... [详细]
  • 如何在Linux系统中部署TensorFlow的详细指南
    本文详细介绍了在Linux系统中部署TensorFlow的过程。作者基于北京大学曹建教授的MOOC课程进行学习,但由于课程内容较旧,环境配置方面遇到了不少挑战。经过多次尝试,最终成功解决了这些问题,并总结了一套详细的安装指南,帮助初学者快速上手TensorFlow。 ... [详细]
  • 如何在Linux中配置环境变量:命令与脚本详解
    请关注本头条号,每天坚持更新原创干货技术文章。当您在Linux命令行上键入命令时,您实际是在告诉shell运行指定名称的可执行文件。在Linux中,这些可执行程序通常位于系统上的几 ... [详细]
  • 如何在MAC上配置Python和Appium开发环境
    一、需要安装的软件二、下载安装步骤2.1、安装jdk2.1.1JDK下载地址:https:www.oracle.comjavatechnologiesjavase-download ... [详细]
author-avatar
Ss_爱咩咩
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有