shell 终端terminfo命令 tput

tput命令

tput 可以更改终端功能,如移动或更改光标,更改文本属性,清除终端屏幕的特定区域等。

光标属性

在shell脚本或命令行中,可以利用tput命令改变光标属性。

tput clear      # 清除屏幕
tput sc         # 记录当前光标位置
tput rc         # 恢复光标到最后保存位置
tput civis      # 光标不可见
tput cnorm      # 光标可见
tput cup x y    # 光标按设定坐标点移动

利用上面参数编写一个终端时钟

#!/bin/bash

for ((i=0;i<10;i++))
do
        tput sc; tput civis                     # 记录光标位置,及隐藏光标
        echo -ne $(date +'%Y-%m-%d %H:%M:%S')   # 显示时间
        sleep 1
        tput rc                                 # 恢复光标到记录位置
done

tput el; tput cnorm                             # 退出时清理终端,恢复光标显示

效果如图

image

文本属性

tput可使终端文本加粗、在文本下方添加下划线、更改背景颜色和前景颜色,以及逆转颜色方案等。

tput blink      # 文本闪烁
tput bold       # 文本加粗
tput el         # 清除到行尾
tput smso       # 启动突出模式
tput rmso       # 停止突出模式
tput smul       # 下划线模式
tput rmul       # 取消下划线模式
tput sgr0       # 恢复默认终端
tput rev        # 反相终端

此外,还可以改变文本的颜色

tput setb 颜色代号
tput setf 颜色代号

颜色代号为

0:黑色
1:蓝色
2:绿色
3:青色
4:红色
5:洋红色
6:黄色
7:白色

现在为"终端时钟"添加,变换颜色和闪烁功能

#!/bin/bash

for ((i=0;i<8;i++))
do
        tput sc; tput civis                     # 记录光标位置,及隐藏光标
        tput blink; tput setf $i                # 文本闪烁,更改文本颜色
        echo -ne $(date +'%Y-%m-%d %H:%M:%S')   # 显示时间
        sleep 1
        tput rc                                 # 恢复光标到记录位置
done

tput el; tput cnorm                             # 退出时清理终端,恢复光标显示

效果如图

image

posted @ 2018-01-12 11:57  Pyerlife  阅读(...)  评论(...编辑  收藏