Qual número de 1 até 64 é o número do sinal do debug?

0

A sintaxe da declaração trap é direta:
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   

Qual número de 1 a 64 é o número do sinal do debug?

    
por scrapy 03.12.2017 / 14:37

2 respostas

1

O manual do Bash parece ser um pouco confuso aqui, como parece implicar que todos os comandos são nomes ou números de sinais:

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

The -l option causes the shell to print a list of signal names and their corresponding numbers. Each sigspec is either a signal name or a signal number.

Mas é claro que DEBUG , EXIT , ERR e RETURN não são sinais reais, mas condições no shell. O texto de ajuda on-line é um pouco diferente, mas não muito melhor, embora mencione "sinais ou outras condições".

O texto no POSIX é muito mais claro, ele afirma explicitamente que a condição é um sinal, ou EXIT :

trap [action condition...]

The condition can be EXIT, 0 (equivalent to EXIT), or a signal specified using a symbolic name, without the SIG prefix, as listed in the tables of signal names in the <signal.h> header

Portanto, EXIT tem o número zero, os outros são extensões fora do padrão e não parecem ter equivalentes numéricos.

    
por 03.12.2017 / 15:50
1

Não há sinal de depuração, isso é algo que você pode ler mais aqui . 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

    
por 03.12.2017 / 15:01

Tags