3
“陷阱……INT TERM EXIT”真的必要吗?
对于许多例子trap使用trap ... INT TERM EXIT的清理任务。但是是否真的有必要列出所有三个sigspec? 该手册说: 如果SIGNAL_SPEC为EXIT(0),则从外壳退出时将执行ARG。 我认为无论脚本正常完成还是由于收到SIGINT或脚本而结束,该脚本都适用SIGTERM。实验还证实了我的信念: $ cat ./trap-exit #!/bin/bash trap 'echo TRAP' EXIT sleep 3 $ ./trap-exit & sleep 1; kill -INT %1 [1] 759 TRAP [1]+ Interrupt ./trap-exit $ ./trap-exit & sleep 1; kill -TERM %1 [1] 773 TRAP [1]+ Terminated ./trap-exit 那为什么这么多例子列出了全部INT TERM EXIT呢?还是我错过了某件事,是否有鞋底EXIT会错过的情况?