Chinaunix首页 | 论坛 | 博客
  • 博客访问: 482290
  • 博文数量: 135
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 1441
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-05 20:39
文章分类
文章存档

2012年(2)

2011年(130)

2009年(2)

2008年(1)

我的朋友

分类:

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

 

 

阅读(1952) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~