trap
bash 의 내장 구문은 다음과 같습니다.
trap [-lp] [arg] [sigspec ...]
… 각각
sigspec
은 신호 이름 또는 신호 번호입니다. 신호 이름은 대소 문자를 구분하지 않으며 SIG 접두어는 선택 사항입니다.…
그 밖으로 bash는 수동 포인트가 sigspec
될 수있다 EXIT
, DEBUG
, RETURN
,와 ERR
. 그들은 신호의 이름입니까?
아래에 주어진 모든 신호 이름 목록에서 찾을 수없고 접두사 SIG
를 추가해도 됩니까?
그것들은 bash 쉘에만 관련이 있고 Linux OS에는 관련이 없습니까? 그들은 쉘 신호를 강타하지만 Linux OS 신호는 아닌가?
$ 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
감사.
답변
이 이름은 bash에서 특별한 의미를 가지며 사용 설명서에 설명되어 있습니다 .
sigspec이 0 또는 EXIT이면 쉘이 종료 될 때 arg가 실행됩니다. sigspec이 DEBUG 인 경우 명령 arg는 모든 간단한 명령, 명령, case 명령, select 명령, 명령에 대한 모든 산술 및 첫 번째 명령이 쉘 함수에서 실행되기 전에 실행됩니다 …
sigspec이 ERR이면 다음 조건에 따라 파이프 라인 (단일 단순 명령으로 구성 될 수 있음), 목록 또는 복합 명령이 0이 아닌 종료 상태를 리턴 할 때마다 명령 arg가 실행됩니다.
답변
이것들은 신호는 아니지만 trap
다른 상황에서도 메커니즘 을 사용하는 것이 좋습니다 . 이 이름은 bash 내에서만 의미가 있습니다.