1부터 64까지 중 디버그 신호 번호는 무엇입니까?

1부터 64까지 중 디버그 신호 번호는 무엇입니까?

Trap 문의 구문은 매우 간단합니다.
Trap [COMMANDS] [SIGNALS]

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     

trap "ls" debug
Desktop      Templates    Documents   

1부터 64까지 중 디버그 신호 번호는 무엇입니까?

답변1

배쉬 매뉴얼이는 모든 명령이 신호 이름이나 번호를 취함을 암시하는 것처럼 보이기 때문에 약간 혼란스러워 보입니다.

trap [-lp] [arg] [sigspec …]

-l옵션을 사용하면 쉘이 신호 이름 목록과 해당 번호를 인쇄합니다. 각신호 사양신호 이름 또는 신호 번호입니다.

물론 DEBUG, EXIT, ERRRETURN는 실제 신호가 아니라 셸의 조건입니다. 온라인 도움말 텍스트는 약간 다르지만 "신호 또는 기타 조건"을 언급하지만 크게 나아지지는 않습니다.

이것POSIX의 텍스트훨씬 더 명확하게 말하면 조건이 다음과 같다고 명시적으로 명시되어 있습니다.누구나신호,또는 EXIT:

trap [action condition...]

조건은 EXIT, 0(EXIT와 동일) 또는 다음과 같이 SIG 접두사 없이 기호 이름을 사용하여 지정된 신호일 수 있습니다.<시그널.h>머리글

따라서 EXIT숫자는 0이고 나머지는 비표준 확장이며 동일한 숫자가 없는 것 같습니다.

답변2

디버그 신호가 없습니다. 여기에 더 자세히 알아볼 수 있는 내용이 있습니다.여기If a sigspec is DEBUG, the command arg is executed before every simple command, for command, case command, select command, every arithmetic for command, and before the first command executes in a shell function

관련 정보