Birçok örnekler trapkullanım trap ... INT TERM EXITtemizleme görevler için. Fakat bu üç sigspec'in tümünü listelemek gerçekten gerekli mi?
Manuel diyor ki:
Bir SIGNAL_SPEC ÇIKIŞ ise (0) ARG kabuktan çıkışta yürütülür.
bence betiğin normal bitip bitmediğini veya aldığından SIGINTveya bitmesinden dolayı bitip bitmediğini uyguladım SIGTERM. Bir deney de inancımı doğrular:
$ cat ./trap-exit
#!/bin/bash
trap 'echo TRAP' EXIT
sleep 3
$ ./trap-exit & sleep 1; kill -INT %1
[1] 759
TRAP
[1]+ Interrupt ./trap-exit
$ ./trap-exit & sleep 1; kill -TERM %1
[1] 773
TRAP
[1]+ Terminated ./trap-exit
Öyleyse neden bu kadar çok örnek hepsini listeliyor INT TERM EXIT? Yoksa bir şeyi mi özledim ve bir tabanın EXITkaçıracağı bir durum var mı?
INT TERM EXITtemizleme kodu gibi bir özelliğe sahip olduğundaSIGTERMveyaSIGINTalındığında iki kez çalıştırıldığını unutmayın .