signal

========


# kill -l | sed -r "s/([0-9]+)\)/\n\1\)/g" | grep .
1) SIGHUP
2) SIGINT       --> ctrl+c
3) SIGQUIT      --> ctrl+\
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    ----> ctrl+z
21) SIGTTIN
22) SIGTTOU
23) SIGURG
24) SIGXCPU
25) SIGXFSZ
26) SIGVTALRM
27) SIGPROF
28) SIGWINCH
29) SIGIO
30) SIGPWR
31) SIGSYS
34) SIGRTMIN



cleans() {
        echo "user cancelled, exit... "
         exit 1 #如果不希望退出的,该行就不用
}
然后使用trap捕获信号
trap "{ cleans;  }" 1 2 3 6 9 15

stty intr undef #屏蔽
stty intr ^C   #回复ctrl+c

stty_g=$(stty -g) # 备份stty 配置参数

========

你可能感兴趣的:(signal)