Shell 采集终端信息

编程入门 行业动态 更新时间:2024-10-21 14:20:16

Shell 采集<a href=https://www.elefans.com/category/jswz/34/1771374.html style=终端信息"/>

Shell 采集终端信息

        写shell脚本时,免不了处理当前终端的相关信息,比如说行数,列数,光标位置,设置前景/背景颜色,设置字体,等等。本文描述如何采集并处理终端设置。

要完成终端信息采集与设置,通常需要用到两款终端处理工具:tput和stty。

1. tput的功能

  • 获取终端的行数和列数:
    tput cols
    tput lines

  • 打印当前终端的名字:

    tpupt longname

     

  • 设置终端背景色
     
    tput setb n
    其中n的取值变化如下(注意,生效与设置差一行):

     

  • 设置终端的前景色
    tput setf n
    其中n的取值变化如下(注意,生效与设置差一行):

 

2. stty

 

用途说明

        stty命令用于显示和修改终端行设置(change and print terminal line settings)。

常用参数

stty命令不带参数可以打印终端行设置,加上-a参数可以打印得更详细些。

stty size可以显示终端的大小,即行数和列数。

stty命令还可以更改终端行的设置,格式如下:

stty SETTING CHAR

其中,SETTING可以是如下

    eof : 输入结束,文件结束,默认为Ctrl+D。比如:用cat >file来创建文件时,按Ctrl+D来结束输入。
    erase : 向后删除字符,擦除最后一个输入字符,默认为Ctrl+?。注意默认情况下退格键Backspace不是删除字符。
    intr : 中断当前程序,默认为Ctrl+C。
    kill : 删除整条命令,删除整行,默认为Ctrl+U。
    quit :退出当前程序,默认为Ctrl+\或Ctrl+|。
    start : 启动屏幕输出,默认为Ctrl+Q。
    stop :停止屏幕输出,默认为Ctrl+S。
    susp : terminal stop当前程序,默认为Ctrl+Z。这样当前进程就会变成后台进程了。

    werase:删除最后一个单词,默认为Ctrl+W。

stty命令还有一些其他用法,如:

    stty -echo 关闭回显。比如在脚本中用于输入密码时。

    stty echo 打开回显。

3. 实例

        读取密码时,不应把密码回显在终端上,以免造成信息泄漏:

#!/bin/bash
echo -e "Please enter password: "
stty -echo
read password
stty echo
echo
echo "Password read."  

执行一下:

 

更多推荐

Shell 采集终端信息

本文发布于:2024-03-10 05:31:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1727116.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:终端   信息   Shell

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!