1.8 获取终端信息

编写命令行shell脚本的时候,总是免不了大量处理当前终端的相关信息,比如行数、列数、光标位置和遮盖密码字段等。这则攻略将帮助你学习如何收集和处理终端设置。

1.8.1 预备知识

tputstty是两款终端处理工具。下面来看看如何用它们完成各种不同的任务。

1.8.2 实战演练

获取终端的行数和列数:

  1. tput cols
  2. tput lines

打印出当前终端名:

  1. tput longname

将光标移动到方位(100,100)处:

  1. tput cup 100 100

设置终端背景色:

  1. tput setb no

其中,no可以在0到7之间取值。

设置终端前景色:

  1. tput setf no

其中,no可以在0到7之间取值。

设置文本样式为粗体:

  1. tput bold

设置下划线的开闭:

  1. tput smu1
  2. tput rmu1

删除当前光标位置到行尾的所有内容:

  1. tput ed

在输入密码的时候,不能让输入的内容显示出来。在下面的例子中,我们将看到如何使用stty来实现这一要求:

  1. #!/bin/sh
  2. #Filename: password.sh
  3. echo -e "Enter password: "
  4. stty -echo
  5. read password
  6. stty echo
  7. echo
  8. echo Password read.

其中,选项 -echo禁止将输出发送到终端,而选项echo则允许发送输出。