Os sinais EXIT, DEBUG, RETURN e ERR?

13

O trap incorporado ao bash possui a seguinte sintaxe

trap [-lp] [arg] [sigspec ...]

... Each sigspec is either a signal name or a signal number. Signal names are case insensitive and the SIG prefix is optional.

...

O manual do bash aponta que sigspec pode ser EXIT , DEBUG , RETURN e ERR . São nomes de sinais?

Por que não os encontro na lista de todos os nomes de sinal dados abaixo, mesmo adicionando um prefixo SIG a eles?

Eles estão relacionados apenas a shells, mas não ao Linux OS? Eles são sinais de shell bash, mas não os sinais do SO Linux?

$ 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    

Obrigado.

    
por Tim 09.08.2017 / 20:26

2 respostas

18

Esses nomes têm um significado especial no bash, cujo uso é explicado no manual :

If a sigspec is 0 or EXIT, arg is executed when the shell exits. 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 ...

If a sigspec is ERR, the command arg is executed whenever a pipeline (which may consist of a single simple command), a list, or a compound command returns a non-zero exit status, subject to the following conditions ...

    
por 09.08.2017 / 20:36
13

Estes não são sinais, mas faz sentido usar o mecanismo trap para certas outras situações também. Esses nomes têm significado apenas no bash.

    
por 09.08.2017 / 20:35

Tags