当前位置:Linux教程 - Linux综合 - 如何判断读入字符是回车键还是方向键

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

  现在,我们很容易用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下也能运行?

(出处:http://www.sheup.com)