在有些情况下,我们不希望自己的shell脚本在运行时刻被中断,比如说我们写得shell脚
本设为某一用户的默认shell,使这一用户进入系统后只能作某一项工作,如数据库备份, 我
们可不希望用户使用ctrl+C之类便进入到shell状态,做我们不希望做的事情。这便用到了信号
处理。

kill -l可以列出系统的信号名称,如下:
zj@zj:~/Script/test$ kill -l
1) SIGHUP         2) SIGINT    3) SIGQUIT    4) SIGILL
5) SIGTRAP        6) SIGABRT    7) SIGBUS    8) SIGFPE
9) SIGKILL        10) SIGUSR1    11) SIGSEGV    12) SIGUSR2
13) SIGPIPE       14) SIGALRM    15) SIGTERM    16) SIGSTKFLT
17) SIGCHLD       18) SIGCONT    19) SIGSTOP    20) SIGTSTP
21) SIGTTIN       22) SIGTTOU    23) SIGURG    24) SIGXCPU
25) SIGXFSZ       26) SIGVTALRM    27) SIGPROF    28) SIGWINCH
29) SIGIO         30) SIGPWR    31) SIGSYS    34) SIGRTMIN
35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3    38) SIGRTMIN+4
39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9    44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12
47) SIGRTMIN+13   48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14
51) SIGRTMAX-13   52) SIGRTMAX-12    53) SIGRTMAX-11    54) SIGRTMAX-10
55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7    58) SIGRTMAX-6
59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1    64) SIGRTMAX   



通常我们需要忽略的信号有四个,即:HUP, INT, QUIT, TSTP,也就是信号1, 2, 3, 24
使用这样的语句可以使这些中断信号被忽略:
trap "" 1 2 3 24 或 trap "" HUP INT QUIT TSTP
用 trap :1 2 3 24 或 trap HUP INT QUIT TSTP使其回复默认值。