Birçok örnekler trap
kullanım trap ... INT TERM EXIT
temizleme 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 SIGINT
veya 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 EXIT
kaçıracağı bir durum var mı?
INT TERM EXIT
temizleme kodu gibi bir özelliğe sahip olduğundaSIGTERM
veyaSIGINT
alındığında iki kez çalıştırıldığını unutmayın .