LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1225|回复: 4

如何在脚本中实现ctrl+c功能.

[复制链接]
发表于 2008-6-4 13:51:27 | 显示全部楼层 |阅读模式
我有个小程序:
#!/bin/bash
while : ;do
echo 1 >/dev/null
done
echo "abcdefg"
现在执行这个程序时,如按ctrl+c则程序就停止了,我可不可以实现按ctrl+c退出while循环而执行echo "abcdefg"这项?
要在while中加入什么?
 楼主| 发表于 2008-6-4 14:31:02 | 显示全部楼层
刚才查了一下好象ctrl+c是默认的键子,不好操纵,那换成别的也行,比如在上面那个程序执行时,虽时按Q就可以退出while而执行最后一行.

这样怎么弄啊?
回复 支持 反对

使用道具 举报

发表于 2008-6-4 16:07:07 | 显示全部楼层
如果用 c-c 的话, 请 help trap

如果用 Q 的话, 也许可以用指定了 timeout 的 read. help read
回复 支持 反对

使用道具 举报

发表于 2008-6-4 16:15:56 | 显示全部楼层
楼上正解,楼主可以看看trap,它可以捕获用户的ctrl-c操作的。
回复 支持 反对

使用道具 举报

发表于 2008-6-11 15:29:12 | 显示全部楼层
  1. #!/bin/bash
  2. trap "echo 'abcdefg'" SIGINT
  3. while : ; do
  4.         echo 1 >/dev/null
  5. done
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表