0
点赞
收藏
分享

微信扫一扫

鼎盛合 | 宠物智能投食机方案设计开发

之前我们探讨了Linux中的tty,tty命令的主要功能是显示当前使用的终端名称。

如果我们想进一步对tty进行设置,就要用到stty。

stty的功能:显示和修改终端特性(Print or change terminal characteristics)。

1 stty -a:显示所有当前注册终端的所有设置情况

关于tty的参数和选项很多,我们着重研究一些比较常用的。

2.stty size:打印出终端的行数(rows)和列数(columns)

返回的结果中有两个数字,其中:

3. stty rows N:设置行数为N;stty columns M:设置列数为M

我们将行数设置为5,列数设置为75。 

 

4 stty eof "string" :改变文件结束符eof

之前在

Linux shell编程学习笔记14:编写和运行第一个shell脚本hello world!

中,我们曾经尝试 使用cp命令 和 /dev/stdin 来创建脚本文件hello.sh,但是在执行脚本文件时会遇到 问题:

出现这个问题的原因是Linux 中 tty默认的文件结束符eof(end of file)是Ctrl+D,而不是DOS中的Ctrl+Z。

现在我们要创建一个脚本文件a.sh,其内容如下:

我们先在bash中用Ctrl+D来试试:

当我们在输入脚本文件a.sh的内容echo hello world!后按Ctrl+D结束,可以顺利执行脚本文件并看到结果。

  • 需要注意的是,我们按下Ctrl+D在屏幕上是没有显示的。

如果我们想像DOS一样使用Ctrl+Z做为eof,那们可以使用stty命令来设置:

我们在bash中测试看看:

可以看到,我们先修改eof为Ctrl+Z,然后输入脚本内容并按Ctrl+Z结束,再执行脚本文件,脚本文件可以顺利执行。


5 stty -echo: 禁止回显,stty echo:打开回显

有时我们在输入信息,比如密码时,不希望信息显示出来,那么我们可以使用stty来进行设置。

例如,我们要执行以下命令序列 :

echo -n Enter your password:       # 提示用户输入密码,-n选项的作用是显示信息后不换行

stty -echo                         # 禁止回显

read p                             # 将用户输入的密码保存到变量p中

stty echo                          # 打开回显

echo -e "\nyour password is: $p"   # 显示用户输入的密码,-e选项的作用是对转义字符(如\n)进行处理

其中每行命令后面#的内容为注释,说明命令的功能。

在上面的例子中,我们输入了密码abc,但在输入的过程中并没有回显出来,而是用最后一条命令显示。

6.stty olcuc:小写字母自动转换为大写字母; stty -olcuc:小写字母不自动转换为大写字母

我们可以通过 执行以下命令序列来测试。

stty olcuc  # 小写字母自动转换为大写字母
echo abcABC # 显示字符串abcABC
stty -olcuc # 小写字母不自动转换为大写字母
echo abcABC # 显示字符串abcABC

可以看到,当我们执行命令 stty olcuc 后,命令 echo abcABC 本应输出的abcABC 变成了 ABCABC,当我们执行命令  stty -olcuc  后, 命令 echo abcABC 输出的才是abcABC。

  • 需要注意的是,这条命令也会影响到终端命令提示符的显示。

 

 在 执行命令 stty olcuc 前,终端命令提示符中的字母是小写的, 执行命令 stty olcuc 后,终端命令提示符中的字母都显示为大写,在执行命令 stty -olcuc 后, 终端命令提示符显示才恢复正常。

7 .stty --help:查看stty命令帮助信息
 

帮助信息的中文译文

举报

相关推荐

0 条评论