免费注册 查看新帖 |

Chinaunix

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

请问 trap : INT 这是什么用法何意思 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-25 18:33 |只看该作者 |倒序浏览
用法应该是:

trap "eval $cmd_exit" HUP TTIN TERM

那么

trap : INT是什么用法,和意思

论坛徽章:
0
2 [报告]
发表于 2005-03-25 19:45 |只看该作者

请问 trap : INT 这是什么用法何意思

INT 就是中断信号(linux 中是ctrl-C,SCO unix 中是"del"键)
trap 就是捕捉信号,与所提供的arg联系起来,就是当捕捉到某个信号时执行arg规定的动作。
如文件a:
#!/bin/bash
trap "echo -e \"\nreceive int\n\";exit" INT
while :
do
((i++))
done

由于是死循环,不会退出,按下ctrl-c键后,程序会显示

receive int

并退回$状态

当arg为空时表示忽略后面指出的信号

trap -p
可显示信号关联的命令。请指正。

论坛徽章:
0
3 [报告]
发表于 2005-03-25 19:49 |只看该作者

请问 trap : INT 这是什么用法何意思

trap : INT

类似这样的trap后面有个":" 冒号是什么用法

论坛徽章:
0
4 [报告]
发表于 2005-03-25 20:02 |只看该作者

请问 trap : INT 这是什么用法何意思

冒号就是true,上面例子在while后不是用了吗,不过没有用在trap后,
trap : INT
就是忽略INT
上面的例子如果改成这样,按ctrl-C就不理你了 :em11:

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2005-03-25 20:45 |只看该作者

请问 trap : INT 这是什么用法何意思

在linux下,各种信号可以用kill -l列出

论坛徽章:
0
6 [报告]
发表于 2005-03-25 21:04 |只看该作者

请问 trap : INT 这是什么用法何意思

trap  -l 也可以

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
7 [报告]
发表于 2005-03-25 21:27 |只看该作者

请问 trap : INT 这是什么用法何意思

ksh下的kill -l:

  1. 1    HUP Hangup                        33     33 Signal 33
  2. 2    INT Interrupt                     34     34 Signal 34
  3. 3   QUIT Quit                          35     35 Signal 35
  4. 4    ILL Illegal instruction           36     36 Signal 36
  5. 5   TRAP Trace trap                    37     37 Signal 37
  6. 6   ABRT Abort                         38     38 Signal 38
  7. 7    BUS Bus error                     39     39 Signal 39
  8. 8    FPE Floating point exception      40     40 Signal 40
  9. 9   KILL Killed                        41     41 Signal 41
  10. 10   USR1 User defined signal 1         42     42 Signal 42
  11. 11   SEGV Memory fault                  43     43 Signal 43
  12. 12   USR2 User defined signal 2         44     44 Signal 44
  13. 13   PIPE Broken pipe                   45     45 Signal 45
  14. 14   ALRM Alarm clock                   46     46 Signal 46
  15. 15   TERM Terminated                    47     47 Signal 47
  16. 16 STKFLT Stack fault                   48     48 Signal 48
  17. 17   CHLD Child exited                  49     49 Signal 49
  18. 18   CONT Continued                     50     50 Signal 50
  19. 19   STOP Stopped (signal)              51     51 Signal 51
  20. 20   TSTP Stopped                       52     52 Signal 52
  21. 21   TTIN Stopped (tty input)           53     53 Signal 53
  22. 22   TTOU Stopped (tty output)          54     54 Signal 54
  23. 23    URG Urgent I/O condition          55     55 Signal 55
  24. 24   XCPU CPU time limit exceeded       56     56 Signal 56
  25. 25   XFSZ File size limit exceeded      57     57 Signal 57
  26. 26 VTALRM Virtual timer expired         58     58 Signal 58
  27. 27   PROF Profiling timer expired       59     59 Signal 59
  28. 28  WINCH Window size change            60     60 Signal 60
  29. 29     IO I/O possible                  61     61 Signal 61
  30. 30    PWR Power-fail/Restart            62     62 Signal 62
  31. 31 UNUSED Unused                        63     63 Signal 63
  32. 32     32 Signal 32
复制代码

bash下的trap -l

  1. /home/lee#trap -l
  2. 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
  3. 5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE
  4. 9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2
  5. 13) SIGPIPE     14) SIGALRM     15) SIGTERM     17) SIGCHLD
  6. 18) SIGCONT     19) SIGSTOP     20) SIGTSTP     21) SIGTTIN
  7. 22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
  8. 26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO
  9. 30) SIGPWR      31) SIGSYS      33) SIGRTMIN    34) SIGRTMIN+1
  10. 35) SIGRTMIN+2  36) SIGRTMIN+3  37) SIGRTMIN+4  38) SIGRTMIN+5
  11. 39) SIGRTMIN+6  40) SIGRTMIN+7  41) SIGRTMIN+8  42) SIGRTMIN+9
  12. 43) SIGRTMIN+10 44) SIGRTMIN+11 45) SIGRTMIN+12 46) SIGRTMIN+13
  13. 47) SIGRTMIN+14 48) SIGRTMIN+15 49) SIGRTMAX-14 50) SIGRTMAX-13
  14. 51) SIGRTMAX-12 52) SIGRTMAX-11 53) SIGRTMAX-10 54) SIGRTMAX-9
  15. 55) SIGRTMAX-8  56) SIGRTMAX-7  57) SIGRTMAX-6  58) SIGRTMAX-5
  16. 59) SIGRTMAX-4  60) SIGRTMAX-3  61) SIGRTMAX-2  62) SIGRTMAX-1
  17. 63) SIGRTMAX
复制代码

PS:还是ksh比较人性话呀

论坛徽章:
0
8 [报告]
发表于 2005-03-25 21:35 |只看该作者

请问 trap : INT 这是什么用法何意思

ksh有注解,不错,还是寂寞细心

论坛徽章:
0
9 [报告]
发表于 2005-03-25 21:41 |只看该作者

请问 trap : INT 这是什么用法何意思

最好对应着看,大多数书或者技术文档中都是trap -l列出的写法哦~

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
10 [报告]
发表于 2005-03-26 01:16 |只看该作者

请问 trap : INT 这是什么用法何意思

[quote]原帖由 "一梦如是"]最好对应着看,大多数书或者技术文档中都是trap -l列出的写法哦~[/quote 发表:

说的对!根据系统的不同,每个linux/unix变量的信号设置也不是一样的,在linux中,可以使用man 7 signal来这些信号的具体文档
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP