정리 작업 에 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
놓치고 발바닥 이 그리워지는 경우가 있습니까?
INT TERM EXIT
정리 코드 와 같은 사양을 사용 하면SIGTERM
또는SIGINT
수신 시 두 번 실행됩니다 .