* Σήματα τερματισμού: Αυτά τα σήματα αποστέλλονται σε μια διαδικασία για να τερματίσουν, για παράδειγμα, `sigint` (διακοπή) ή` sigterm` (τερματισμό).
* Σήματα σφάλματος: Αυτά τα σήματα αποστέλλονται σε μια διαδικασία για να υποδείξουν ένα σφάλμα, για παράδειγμα, `sigsegv` (παραβίαση τμηματοποίησης).
* Άλλα σήματα: Υπάρχουν διάφορα άλλα σήματα, όπως το `sigusr1` και το` sigusr2 ', τα οποία μπορούν να χρησιμοποιηθούν για προσαρμοσμένους σκοπούς.
Πώς λειτουργεί το `trap`
Η εντολή `trap` σας επιτρέπει να καθορίσετε ποιες ενέργειες πρέπει να ληφθούν όταν λαμβάνεται ένα συγκεκριμένο σήμα με μια διαδικασία. Έχει την ακόλουθη σύνταξη:
`` `bash
Σήμα εντολής παγίδευσης
`` `
* `command` :Αυτή είναι η εντολή ή η ακολουθία εντολών που θα εκτελεστούν όταν ληφθεί το καθορισμένο σήμα.
* `signal` :Αυτός είναι ο αριθμός σήματος ή το όνομα που θέλετε να παγιδεύσετε.
Παραδείγματα
1. Χειρισμός `sigint` (διακοπή):
`` `bash
Η παγίδα "Echo" διέκοψε! Έξοδος ... "; έξοδος 'int
`` `
Αυτό θα εκτυπώσει το μήνυμα "Διακοπή! Έξοδος ..." και έπειτα βγείτε από το σενάριο όταν πιέζεται το "Ctrl+C` (που στέλνει το σήμα" Sigint`).
2. αγνοώντας το `sigquit` (quit):
`` `bash
παγίδα 'quit
`` `
Αυτό θα αγνοήσει το σήμα `sigquit` (συνήθως αποστέλλεται από το` ctrl+\ `) και θα αποτρέψει το τερματισμό του σεναρίου.
3. Εκτέλεση σεναρίου καθαρισμού:
`` `bash
Trap 'Cleanup.sh' Έξοδος
`` `
Αυτό θα εκτελέσει το σενάριο `cleanup.sh` όταν βγαίνει η διαδικασία, ανεξάρτητα από τον λόγο τερματισμού.
Σημαντικές σημειώσεις:
* Η εντολή `trap` επηρεάζει μόνο την τρέχουσα διαδικασία κελύφους.
* Εάν θέλετε να χειριστείτε τα σήματα σε μια παιδική διαδικασία, πρέπει να χρησιμοποιήσετε `Trap` μέσα σε αυτή τη διαδικασία παιδιών.
* Μπορείτε να χρησιμοποιήσετε την επιλογή `-l` με` TRAP` για να απαριθμήσετε όλα τα διαθέσιμα σήματα.
Συνοπτικά, το `TRAP` παρέχει έναν ισχυρό μηχανισμό για το χειρισμό των σημάτων και τον έλεγχο της συμπεριφοράς των σεναρίων UNIX σε απάντηση σε διάφορα γεγονότα.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα