ক্লিনআপ কাজের জন্য trap
ব্যবহারের trap ... INT TERM EXIT
জন্য অনেক উদাহরণ । তবে তিনটি সিগস্পেকের তালিকা করা কি সত্যিই প্রয়োজনীয়?
ম্যানুয়ালটিতে বলা হয়েছে:
যদি একটি SIGNAL_SPEC হয় এক্সিট (0) এআরজি শেল থেকে প্রস্থান করার সময় কার্যকর করা হয়।
যা আমি বিশ্বাস করি প্রযোজ্য কিনা স্ক্রিপ্ট স্বাভাবিকভাবে সমাপ্ত অথবা কারণ এটি পেয়েছি এটি সমাপ্ত SIGINT
বা SIGTERM
। একটি পরীক্ষা আমার বিশ্বাসকেও নিশ্চিত করে:
$ 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
তাহলে কেন এতগুলি উদাহরণ সমস্তের তালিকা করে INT TERM EXIT
? বা আমি কিছু মিস করেছি এবং এমন কোনও ঘটনা আছে যেখানে কোনও একক EXIT
মিস করবে?
INT TERM EXIT
ক্লিনআপ কোডের মতো একটি অনুমানের সাথে দু'বার কার্যকর করা হয়SIGTERM
বাSIGINT
গ্রহণ করা হয়।