Apakah sinyal EXIT, DEBUG, RETURN, dan ERR?

14

The trapbuiltin di bash memiliki sintaks berikut

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

... Masing sigspec- masing adalah nama sinyal atau nomor sinyal. Nama sinyal tidak peka huruf besar kecil dan awalan SIG adalah opsional.

...

Poin bash manual bahwa sigspecbisa EXIT, DEBUG, RETURN, dan ERR. Apakah mereka nama-nama sinyal?

Mengapa saya tidak menemukannya dalam daftar semua nama sinyal yang diberikan di bawah ini, bahkan menambahkan awalan SIGuntuk mereka?

Apakah mereka hanya terkait dengan shell bash tetapi tidak dengan OS Linux? Apakah itu bash sinyal shell tetapi bukan sinyal OS 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    

Terima kasih.

Tim
sumber

Jawaban:

19

Nama-nama tersebut memiliki arti khusus dalam bash yang penggunaannya dijelaskan dalam manual :

Jika sigspec adalah 0 atau EXIT, arg dieksekusi ketika shell keluar. Jika sigspec adalah DEBUG, perintah arg dieksekusi sebelum setiap perintah sederhana, untuk perintah, perintah kasus, pilih perintah, setiap aritmatika untuk perintah, dan sebelum perintah pertama dijalankan dalam fungsi shell ...

Jika sigspec adalah ERR, argumen perintah dieksekusi setiap kali pipa (yang dapat terdiri dari satu perintah sederhana), daftar, atau perintah gabungan mengembalikan status keluar bukan nol, tunduk pada kondisi berikut ...

sebasth
sumber
14

Ini bukan sinyal tetapi masuk akal untuk menggunakan trapmekanisme untuk situasi tertentu lainnya juga. Nama-nama ini memiliki arti hanya dalam bash.

Hauke ​​Laging
sumber
1
The EXITperangkap ditentukan oleh POSIX sekalipun.
Kusalananda
@ Kusalananda Saya tidak bermaksud bahwa kerang lain tidak mendukung ini.
Hauke ​​Laging
3
@ HaukeLaging Secara teknis (dan pedantically) berbicara itu membuat kalimat "Nama-nama ini memiliki arti bash hanya dalam " salah.
Pharap