LinuxSir.cn,穿越时空的Linuxsir!

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

一个关于trap的问题

[复制链接]
发表于 2005-12-10 22:02:18 | 显示全部楼层 |阅读模式
碰到一个奇怪的问题, 代码如下:

  1. #!/bin/ksh
  2. trap 'print "you just hit CTR_C";exit'  INT
  3. find / -name *.log -print
复制代码


发现当按下 CTRL-C 的时候 trap 里的命令并不执行, 而在代码最后添加一条指令, 就能执行trap里的命令, 如:

  1. #!/bin/ksh
  2. trap 'print "you just hit CTR_C";exit'  INT
  3. find / -name *.log -print
  4. print "Why!!!!!"
复制代码


百思不解, 郁闷! 哪位高手指教一二, :thank
发表于 2005-12-10 22:33:27 | 显示全部楼层
问题可能出现在find命令上~
具体我不也不知道
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-10 22:57:20 | 显示全部楼层
Post by sinboy2002
问题可能出现在find命令上~
具体我不也不知道



把代码中的find那一行改为别的命令, 就能按预料中的执行了, 但不知为啥?
回复 支持 反对

使用道具 举报

发表于 2005-12-11 03:14:55 | 显示全部楼层
[william@fantasy /tmp]$ cat -A i
#!/bin/bash$
trap 'echo "you just hit CTR_C";exit'  INT$
find / -name *.log -print$

执行结果:
find: /etc/squid: 权限不够
/mnt/all/Info_D/Tech Article/Java/J2EE/j2ee1.3  SUNCodeCampus/Java_Message_Service_and_The_J2EE_Platform/Lab/Exercise/ws_ftp.log
/mnt/all/Info_D/Tech Article/Java/J2EE/j2ee1.3  SUNCodeCampus/Servlets_2.3_and_JSP_1.2/Lab/Exercise/compressionFilters/src/ws_ftp.log
/mnt/all/Info_D/Tech Article/Java/J2EE/j2ee1.3  SUNCodeCampus/Servlets_2.3_and_JSP_1.2/Lab/Exercise/compressionFilters/ws_ftp.log
/mnt/all/Info_D/Tech Article/Java/J2EE/j2ee1.3  SUNCodeCampus/Servlets_2.3_and_JSP_1.2/Lab/Exercise/sessionListeners/listeners/ws_ftp.log
/mnt/all/Info_D/Tech Article/Java/J2EE/j2ee1.3  SUNCodeCampus/Servlets_2.3_and_JSP_1.2/Lab/Exercise/sessionListeners/ws_ftp.log
you just hit CTR_C


没有任何问题,不过你的程序使用ksh,我用bash。
不知道是否粘贴的原因,你的程序中有windows换行(^M)。
回复 支持 反对

使用道具 举报

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

本版积分规则

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