linux shell循环:for、while、until用法详解

2019-09-23 08:51:54刘景俊

rap '-' 信号 恢复原信号的操作

trap -p 列出自定义信号操作

trap 所有可选项

[root@centos6mini 3.19]# trap -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

#!/bin/bash 
trap 'echo “signal:SIGINT"' int   # int 相当与Ctrl+c
trap -p 
for((i=0;i<=10;i++)) 
do 
sleep 1
echo $i 
done
trap '' int #trap '' 信号 忽略信号的操作 
trap -p 
for((i=11;i<=20;i++)
do 
sleep 1
echo $i 
done 
trap '-' int  #rap '-' 信号 恢复原信号的操作 
trap -p 
for((i=21;i<=30;i++)
do 
sleep 1 
echo $i
done

忽略kill -15 ,操作可以成功

忽略kill -9操作 ,不成功,无法忽略kill -9

trap -l,把所有信号打印出来

查看kill -9 和kill -15 对应的信号选项

select与case

select 是个无限循环,因此要记住用 break 命令退 出循环,或用 exit 命令终止脚本。也可以按 ctrl+c 退出循环

select 经常和 case 联合使用

与 for 循环类似,可以省略 in list,此时使用位置