全部博文(135)
分类:
2011-08-11 15:18:46
不用回车获取用户所按键(一个具有创造性的stty命令的用法)
2009年9月3日
14:20
一个具有创造性的stty命令的用法, 检测用户所按的键(不用敲回车).
Example 13-4 按键检测
################################Start Script#######################################
1 #!/bin/bash
2 # keypress.sh: 检测用户按键 ("hot keys").
3
4 echo
5
6 old_tty_settings=$(stty -g) # 保存老的设置(为什么?).
7 stty -icanon
8 Keypress=$(head -c1) # 或者 $(dd bs=1 count=1 2> /dev/null)
9 # 在非GNU的系统上
10
11 echo
12 echo "Key pressed was \""$Keypress"\"."
13 echo
14
15 stty "$old_tty_settings" # 恢复老的设置.
16
17 # 感谢, Stephane Chazelas.
18
19 exit 0
################################End Script#########################################
文章出处:
示例脚本
[root@localhost ~]# cat keypress.sh
#!/bin/bash
echo
old_tty_settings=$(stty -g)
stty -icanon
Keypress=$(head -c1)
echo
echo "Key pressed was \""$Keypress"\"."
if [ "$Keypress" == " " ]
then
echo 'Skip'
else
echo 'Using it'
fi
echo
stty "$old_tty_settings"
exit 0
一个运行示例
[root@localhost ~]# ./keypress.sh
Key pressed was " ".
Skip