Shell 采集终端信息,编写命令行shell脚本时,总是免不了处理当前终端的相关信息,比如行数、列数、光标位置、遮盖的密码字段等。这则攻略将帮助你学习如何采集并处理终端设置。
Shell 采集终端信息 预备知识
tput
和stty
是两款终端处理工具。
Shell 采集终端信息 实战演练
下面是一些tput
命令的功能演示。
- 获取终端的行数和列数:
tput cols
tput lines
- 打印出当前的终端名:
tput longname
- 将光标移动到坐标(100,100)处:
tput cup 100 100
- 设置终端背景色:
tput setb n
其中,n可以在0到7之间取值。
- 设置终端前景色:
tput setf n
其中,n
可以在0到7之间取值。
包括常用的
color ls
在内的一些命令可能会重置前景色和背景色。
– 设置文本样式为粗体:
tput bold
- 设置下划线的起止:
tput smul
tput rmul
- 删除从当前光标位置到行尾的所有内容:
tput ed
- 输入密码时,脚本不应该显示输入内容。在下面的例子中,我们将看到如何使用
stty
来实现这一需求:
#!/bin/sh
#Filename: password.sh
echo -e "Enter password: "
# 在读取密码前禁止回显
stty -echo
read password
# 重新允许回显
stty echo
echo
echo Password read.
stty
命令的选项-echo
禁止将输出发送到终端,而选项echo
则允许发送输出。