免费注册 查看新帖 |

Chinaunix

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

紧急求救:如何在SHELL程序中实现‘按任意键继续’  关闭 [复制链接]

鸟人 该用户已被删除
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-03-19 10:33 |只看该作者 |倒序浏览
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
2 [报告]
发表于 2002-03-19 13:37 |只看该作者

紧急求救:如何在SHELL程序中实现‘按任意键继续’

一个经典的小难题,HERE you are:
把下面这个函数如法应用到你的程序中去吧。
#!/bin/sh

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
}

echo &quotress any key to continue..."
char=`get_char`

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

紧急求救:如何在SHELL程序中实现‘按任意键继续’

忘了说了,如果你的机器上不认stty raw那么把函数中两处出现的raw换成cbreak。

论坛徽章:
0
4 [报告]
发表于 2002-03-19 15:55 |只看该作者

紧急求救:如何在SHELL程序中实现‘按任意键继续’

给加到精华里了。
鸟人 该用户已被删除
5 [报告]
发表于 2002-03-19 16:36 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
6 [报告]
发表于 2002-03-20 09:38 |只看该作者

紧急求救:如何在SHELL程序中实现‘按任意键继续’

大家都不要谦虚了,轮流做不是很好吗?? :)

论坛徽章:
0
7 [报告]
发表于 2002-03-20 10:55 |只看该作者

紧急求救:如何在SHELL程序中实现‘按任意键继续’

真高兴,在  valentine ,mygod 之后,又涌现出一位有志青年。真有点相见狠晚的感觉。

我相信, michaelds 即便不做斑竹,凭他的热心和能力,也会受到大家的支持和感谢的。

论坛徽章:
0
8 [报告]
发表于 2003-02-28 21:37 |只看该作者

紧急求救:如何在SHELL程序中实现‘按任意键继续’

如果是
while :
do
case
1)....;
2),....:
0)exit;
done
,输入1或2(不用敲回车)就可以运行的话,有办法吗

论坛徽章:
0
9 [报告]
发表于 2003-02-28 22:07 |只看该作者

紧急求救:如何在SHELL程序中实现‘按任意键继续’

...

呵呵,一年前的帖子哦~

做成子程序来调用就好了,试试这个


  1. #!/usr/bin/ksh
  2. get_char()
  3. {
  4.   SAVEDSTTY=`stty -g`
  5.   stty -echo
  6.   stty raw
  7.   dd if=/dev/tty bs=1 count=1 2> /dev/null
  8.   stty -raw
  9.   stty echo
  10.   stty $SAVEDSTTY
  11. }

  12. while :
  13. do
  14. printf "press any key or RETRUN to quit: "
  15. c=`get_char`
  16. case "$c" in
  17.   [0-9]) echo "this is digit $c";;
  18.   [a-zA-Z]) echo "this is aphabet $c";;
  19.   ^M) exit;;
  20.   *) echo "Key undefined! "
  21. esac
  22. done
复制代码


说明:^M 的输入方法是 CTRL-V-M

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
10 [报告]
发表于 2003-02-28 22:16 |只看该作者

紧急求救:如何在SHELL程序中实现‘按任意键继续’

又学了一招.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP