免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7788 | 回复: 14
打印 上一主题 下一主题

如何判断读入字符是回车键还是方向键  关闭 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-08-08 08:54 |只看该作者 |倒序浏览
[这个贴子最后由valentine在 2002/08/09 08:44am 编辑]

现在,我们很容易用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" &#59;&#59;
  '^[' ) echo "possible arrow keys"
                 secondchar=`get_char`
                 thirdchar=`get_char`
                 case "$thirdchar" in
                        'A' ) echo UP &#59;&#59;
                        'B' ) echo DOWN &#59;&#59;
                        'D' ) echo LEFT &#59;&#59;
                        'C' ) echo RIGHT &#59;&#59;
                esac
esac

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

论坛徽章:
0
2 [报告]
发表于 2002-08-08 11:12 |只看该作者

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

自己给自己回复以下.
偶不习惯看到没有回复的帖子.hihi

论坛徽章:
0
3 [报告]
发表于 2002-08-08 11:45 |只看该作者

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

版主就是版主,真是很厉害! 要多向你学习!

辛苦了!多谢!

论坛徽章:
0
4 [报告]
发表于 2002-08-08 20:47 |只看该作者

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

大家也可以直接改造get_char,使之能够直接返回ESC序列.
请问如何改造呢。。。。。?

论坛徽章:
0
5 [报告]
发表于 2002-08-09 11:15 |只看该作者

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

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

论坛徽章:
0
6 [报告]
发表于 2002-08-11 13:22 |只看该作者

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

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

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

论坛徽章:
0
7 [报告]
发表于 2002-08-13 10:34 |只看该作者

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

您的ftp是多少?

论坛徽章:
0
8 [报告]
发表于 2002-08-13 16:45 |只看该作者

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

to tingcloud:置顶的帖子总得看一下吧.

论坛徽章:
0
9 [报告]
发表于 2002-12-04 09:10 |只看该作者

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

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

论坛徽章:
0
10 [报告]
发表于 2003-06-06 01:03 |只看该作者

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

情问版主,我用的是KSH,BASH,在BASH下可以用方向键查看历史命令,而在KSH下却出现^[OA这样的符号,是怎么回事?,怎么设置?
谢谢您
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP