Linux shell编程学习笔记27:tputs
除了stty命令,我们还可以使用tput命令来更改终端的参数和功能。
1 tput 命令的功能
tput 命令的主要功能有:移动更改光标、更改文本显示属性(如颜色、下划线、粗体),清除屏幕特定区域等。
2 tput 命令格式
tput [选项] [参数]
3 设置文本颜色属性
3.1 tput setaf / setbf :设置前景色 / 背景色
命令格式:
- tput setab n : 设置背景色,set text attributes background color
- tput setaf n : 设置前景色,set text attributes front color
参数n:
- 0 – Black,黑色
- 1 – Red,红色
- 2 – Green,绿色
- 3 – Yellow,黄色
- 4 – Blue,蓝色
- 5 – Magenta,品红
- 6 – Cyan,青色
- 7 – White,白色
例子:设置前背景色为黄色(3),背景色为品红(5)。
csdn @ edu bash ~ $ tput setaf 3 setab 5
csdn @ edu bash ~ $ tput setab 5
csdn @ edu bash ~ $
看来不能在一个命令中同时设置前景色和背景色,要分开来用两个命令分别设置。
csdn @ edu bash ~ $ tput setaf 3; tput setab 5
csdn @ edu bash ~ $
3.2 tput rev:反显当前的颜色方案
rev源自reverse。
csdn @ edu bash ~ $ tput setaf 3; tput setab 5
csdn @ edu bash ~ $ tput rev
csdn @ edu bash ~ $
4 设置文本模式属性
命令 | 功能 |
tput bold | 加粗字体 |
tput dim | 打开高亮模式,turn on half-bright mode |
tput smul | 添加下划线,start mode of underline, |
tput rmul | 取消下划线,remove mode of underline |
tput smso | 突出模式,start mode of standout |
tput rmso | 反显突出模式,reverse mode of standout |
tput sgr0 | set global attributes return to 0, 取消所有属性 |
csdn @ edu bash ~ $ tput setaf 3; tput setab 5
csdn @ edu bash ~ $ tput smso
csdn @ edu bash ~ $ tput rmso
csdn @ edu bash ~ $ tput smul
csdn @ edu bash ~ $ tput bold
csdn @ edu bash ~ $ tput rmul
csdn @ edu bash ~ $ tput dim
csdn @ edu bash ~ $ tput sgr0csdn @ edu bash ~ $
5 设置光标属性
命令 | 功能 |
tput clear | 清屏 |
tput sc | 保存当前光标位置,save curosr position |
tput rc | 恢复光标位置,restore cursor postion |
tput cup row column | 将光标移动到指定行row和列column, |
tput civis | 光标不可见,cursor invisible |
tput cnorm | 光标可见,cursor mormal |
tpu init | 清空格式 |
我们将执行以下命令序列:
tput clear # 清屏
tput sc # 保存当前光标位置
tput cup 10 13 # 将光标移动到第10行第13列
echo -n Enter your password: # 提示用户输入密码
tput civis # 光标不可见
read p # 将用户输入的密码保存到变量p中
tput cnorm # 光标可见
tput rc # 恢复光标位置
echo your password: $p # 显示用户输入的密码
csdn @ edu bash ~ $ tput clear;tput sc;tput cup 10 13;echo -n Enter your password:;tput civis; read p; tput cnorm; tput rc; echo your password: $p
6 其它功能
命令 | 功能 |
tput lines | 显示行数 |
tpus cols | 显示列数 |
tput reset | 重置终端设置 |
tput longname | 显示当前终端类型的长名称 |
tput hs | 具有状态行 |
csdn @ edu bash ~ $ tput lines
22
csdn @ edu bash ~ $ tput cols
132
csdn @ edu bash ~ $ tput longname
xterm terminal emulator (X Window System)csdn @ edu bash ~ $