1.8 获取终端信息
编写命令行shell脚本的时候,总是免不了大量处理当前终端的相关信息,比如行数、列数、光标位置和遮盖密码字段等。这则攻略将帮助你学习如何收集和处理终端设置。
1.8.1 预备知识
tput
和stty
是两款终端处理工具。下面来看看如何用它们完成各种不同的任务。
1.8.2 实战演练
获取终端的行数和列数:
tput cols
tput lines
打印出当前终端名:
- tput longname
将光标移动到方位(100,100)处:
- tput cup 100 100
设置终端背景色:
- tput setb no
其中,no
可以在0到7之间取值。
设置终端前景色:
- tput setf no
其中,no
可以在0到7之间取值。
设置文本样式为粗体:
- tput bold
设置下划线的开闭:
- tput smu1
- tput rmu1
删除当前光标位置到行尾的所有内容:
- tput ed
在输入密码的时候,不能让输入的内容显示出来。在下面的例子中,我们将看到如何使用stty
来实现这一要求:
#!/bin/sh
#Filename: password.sh
echo -e "Enter password: "
stty -echo
read password
stty echo
echo
echo Password read.
其中,选项 -echo
禁止将输出发送到终端,而选项echo
则允许发送输出。