stty(set tty)

Posted tianzeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stty(set tty)相关的知识,希望对你有一定的参考价值。

tty [ -a ] [ -g ] [ Options ]   stty(set tty)命令用于显示和修改当前注册的终端的属性。

UNIX系统为键盘的输入和终端的输出提供了重要的控制手段,可以通过stty命令对特定终端或通信线路设置选项。 在stty中相应选项前冠以负号(-),该选项被清除;如果无负号,该选项被设置。

stty -a #将所有选项设置的当前状态写到标准输出中
old_stty_settings=`stty -g` #保存当前设置
stty "$old_stty_settings" #恢复当前设置
stty -echo #禁止回显,当您在键盘上输入时,并不出现在屏幕上
stty echo #打开回显
stty raw #设置原始输入
stty -raw #关闭原始输入
stty igncr #开启忽略回车符
stty -igncr#关闭忽略回车符

-a:以容易阅读的方式打印当前的所有配置;
-g:以stty可读方式打印当前的所有配置。

在命令行下,禁止输出大写的方法:
stty iuclc     #开启
stty -iuclc    #恢复

在命令行下禁止输出小写:
stty olcuc    #开启
stty -olcuc   #恢复

打印出终端的行数和列数:
stty size

改变Ctrl+D的方法:
stty eof "string"  系统默认是Ctrl+D来表示文件的结束,而通过这种方法,可以改变!

忽略回车符:
stty igncr     #开启
stty -igncr    #恢复

定时输入:
timeout_read()
{
    timeout=$1
    old_stty_settings=`stty -g`  #save current settings
    stty -icanon min 0 time 100  #set 10seconds,not 100seconds
    eval read varname            #=read $varname
    stty "$old_stty_settings"    #recover settings
}

更简单的方法就是利用read命令的-t选项:
read -t 10 varname

eg1:

  1. #!/bin/sh  
  2. stty -echo  
  3. echo -n "Please set your password: "  
  4. read p  
  5. stty echo  
  6. echo -e "\nYour password is: $p"  

eg2:

  1. get_char()  
  2. {  
  3.   SAVEDSTTY=`stty -g`  
  4.   stty -echo  
  5.   stty raw  
  6.   dd if=/dev/tty bs=1 count=2> /dev/null  
  7.   stty -raw  
  8.   stty echo  
  9.   stty $SAVEDSTTY  

以上是关于stty(set tty)的主要内容,如果未能解决你的问题,请参考以下文章

stty命令使用

Bash Shell的操作环境

开发板 — 调试串口

停止 qt 写入 /dev/tty0

Emacs shell-mode 中的 Python 打开 stty echo 并中断 C-d

stty--设置终端线