免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2647 | 回复: 6

请问bash脚本中如何实现键盘绑定 [复制链接]

论坛徽章:
0
发表于 2010-04-03 16:33 |显示全部楼层
本帖最后由 idealab 于 2010-04-03 18:54 编辑

bash脚本需求: 绑定key,使得在脚本不断输出文本的时候能够执行被绑定的命令。
我的脚本如下:

  1. #! /bin/bash
  2. #! bindKeys.sh

  3. bind -x '"\C-e":"exit 0"'
  4. bind -x '"\C-s":"sleep 10"'
  5. while :
  6. do
  7.     val="$val="
  8.     echo -ne "$val>\r"
  9.     sleep 0.5                  
  10. done
复制代码
用source ./bindKeys.sh来执行脚本时,貌似由于脚本不断输出文本,故Ctrl-e,Ctrl-s均不能触发被绑定命令。
请问各位如何实现此需求?
多谢。

论坛徽章:
0
发表于 2010-04-04 10:47 |显示全部楼层
Readline?

论坛徽章:
0
发表于 2010-04-06 17:24 |显示全部楼层
回复 2# cusheller


是ReadLine实现的,如果把循环输出文本去掉的话,绑定逻辑是可以实现的。
现在不晓得如何在不断输出文本的同时,使绑定生效。

招聘 : 质量管理
论坛徽章:
0
发表于 2010-04-06 17:51 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2010-04-06 18:04 |显示全部楼层
不懂。
和trap类似吧

论坛徽章:
1
寅虎
日期:2014-11-30 21:25:54
发表于 2010-04-06 20:18 |显示全部楼层
脚本内使用readline无效的  只能在交互式shell里用

论坛徽章:
0
发表于 2010-04-13 14:48 |显示全部楼层
回复 6# vbs100


    source ./bindKeys.sh使脚本获得父进程运行环境就可以生效。 可经过测试,发现问题不在这里。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP