如何判断读入字符是回车键还是方向键

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

现在,我们很容易用dd从终端读入一个字符,但如何判断一些特殊情形呢?在键盘上按下你需要判断的键,如上箭头,回车后,系统提示:^[[A: not found

^[[A便是我们判断的依据,脚本示例如下:

#!/bin/ksh

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

}

c=`get_char`

case "$c" in

'^M' ) echo "enter" ;;

'^[' ) echo "possible arrow keys"

secondchar=`get_char`

thirdchar=`get_char`

case "$thirdchar" in

'A' ) echo UP ;;

'B' ) echo DOWN ;;

'D' ) echo LEFT ;;

'C' ) echo RIGHT ;;

esac

esac

大家也可以直接改造get_char,使之能够直接返回ESC序列.

自己给自己回复以下.

偶不习惯看到没有回复的帖子.hihi

大家也可以直接改造get_char,使之能够直接返回ESC序列.

请问如何改造呢。。。。。?

斑竹,你是如何学好的?给我发两本电子文档书(你认为经典的,对我肯定有帮助的)。

To goodboy:到我的ftp上看一下.上边有基本shell编程的书.

不知你信不信,我本人并没看过那些书.不过也许因此走了不少弯路.现在懂的那一点点,有的来自系统管理方面的书,来自man的,来自bbs的,说不清楚.时间久了,积累罢了.

怎样改成在sh下也能运行?

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航