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:
- #!/bin/sh
- stty -echo
- echo -n "Please set your password: "
- read p
- stty echo
- echo -e "\nYour password is: $p"
eg2:
- get_char()
- {
- SAVEDSTTY=`stty -g`
- stty -echo
- stty raw
- dd if=/dev/tty bs=1 count=1 2> /dev/null
- stty -raw
- stty echo
- stty $SAVEDSTTY
- }
以上是关于stty(set tty)的主要内容,如果未能解决你的问题,请参考以下文章