免费注册 查看新帖 |

Chinaunix

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

shell中捕捉信号好像不好使? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-08-21 16:28 |只看该作者 |倒序浏览
我用trap "command;command" signal-number
例子:
trapper(){
  echo "In trapper"
  trap "echo "ok....";exit 1 "1 2 15
}
while :
do
   echo "IN the main script"
   trapper
   echo "still in main"
   sleep 5
done
在超级用户下执行结果
按contral-c没有反应,按contral-\显示
rapper: 1097 Quit - core dumped
在一般用户下执行一点反应没有
问题在哪?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-08-21 18:19 |只看该作者

shell中捕捉信号好像不好使?

trap "echo "ok....";exit 1 "1 2 15
試試改為:
trap "echo 'ok....';exit 1 " 1 2 15

论坛徽章:
0
3 [报告]
发表于 2004-08-22 00:01 |只看该作者

shell中捕捉信号好像不好使?

trap "echo ok..." 1 2 15就可以啦,因为1,2,15本身就是非零态退出!

论坛徽章:
0
4 [报告]
发表于 2004-08-22 12:18 |只看该作者

shell中捕捉信号好像不好使?

各位,没有反应?我用的是sco5。0。6

论坛徽章:
0
5 [报告]
发表于 2004-08-22 12:29 |只看该作者

shell中捕捉信号好像不好使?

按照你的意思,我觉得你可能需要再核实一下你的终端
如果你是直接Kill -signo pid,我觉得你这样试验一定不会有问题;但是如果直接键盘操作产生信号,是否需要核实一下的stty -a的输出
比如我的
intr = ^C; quit = ^\; erase = ^H; kill = ^U
eof = ^D; eol = ^@; eol2 <undef>; swtch <undef>
stop = ^S; start = ^Q; susp = ^Z; dsusp = ^Y

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

shell中捕捉信号好像不好使?

[quote]原帖由 "bjgirl"]trap "echo ok..." 1 2 15就可以啦,因为1,2,15本身就是非零态退出![/quote 发表:

嗯, 這段最好測試一下才能確定.
若在 bash 中, 只會送 ok 而不會退出...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP