EXIT, DEBUG, RETURN ve ERR sinyalleri var mı?


14

trapBash içindeki yerleşik, aşağıdaki sözdizimine sahiptir

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

... Her sigspecbiri bir sinyal adı veya bir sinyal numarasıdır. Sinyal adları büyük / küçük harfe duyarlı değildir ve SIG öneki isteğe bağlıdır.

...

Dikkat bash manuel noktalar sigspecolabilir EXIT, DEBUG, RETURNve ERR. Sinyal isimleri mi?

Bunları neden aşağıda verilen tüm sinyal isimleri listesinde bulamıyorum, hatta SIGonlara bir önek ekleyemiyorum ?

Sadece bash mermileriyle mi ilgili, Linux işletim sistemi ile mi ilgili değiller? Kabuk sinyallerini baslatıyorlar ama Linux işletim sistemi sinyalleri değil mi?

$ 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    

Teşekkürler.

Yanıtlar:


19

Bu adlar, kullanım kılavuzunda açıklanan bash'de özel bir anlama sahiptir :

Bir sigspec 0 veya EXIT ise kabuk kabuktan çıktığında arg yürütülür. Bir sigspec DEBUG ise, komut arg komutu her basit komuttan önce, komut, büyük / küçük harf komutu, select komutu, komut için her aritmetik ve ilk komut bir kabuk işlevinde yürütülmeden önce yürütülür ...

Bir sigspec ERR ise, komut argümanı, bir boru hattı (tek bir basit komuttan oluşabilir), bir liste veya bir bileşik komut, aşağıdaki koşullara tabi olarak sıfırdan farklı bir çıkış durumu döndürdüğünde yürütülür ...


14

Bunlar sinyal değildir, ancak trapmekanizmayı diğer bazı durumlar için de kullanmak mantıklıdır . Bu isimlerin sadece bash içinde bir anlamı vardır.


1
EXITTuzak olsa POSIX tarafından belirlenir.
Kusalananda

@Kusalananda Diğer mermilerin bunu desteklemediği anlamına gelmiyordum.
Hauke ​​Laging

3
@HaukeLaging Teknik olarak (ve bilgiçliksel olarak) konuşmak, "Bu isimlerin bash sadece içeride bir anlamı var" cümlesini yanlış yapar.
Pharap
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.