ক্লিনআপ কাজের জন্য 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গ্রহণ করা হয়।