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
- }