shell 終端terminfo命令 tput

Pyerlife發表於2018-01-12

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

相關文章