La commande `Trap` dans Unix est utilisée pour gérer les signaux , qui sont des événements asynchrones qui peuvent interrompre un processus de fonctionnement. Des signaux sont utilisés pour informer un processus de divers événements, tels que:
* Signaux de terminaison: Ces signaux sont envoyés à un processus pour le résilier, par exemple, «Sigint» (interruption) ou «Sigterm» (terminer).
* signaux d'erreur: Ces signaux sont envoyés à un processus pour indiquer une erreur, par exemple, «Sigsegv» (violation de segmentation).
* Autres signaux: Il existe divers autres signaux, tels que «Sigusr1» et «Sigusr2», qui peuvent être utilisés à des fins personnalisées.
comment fonctionne `Trap`
La commande «Trap» vous permet de spécifier quelles actions doivent être prises lorsqu'un signal particulier est reçu par un processus. Il a la syntaxe suivante:
`` `bash
Trappe 'Command' Signal
`` '
* `Command` :Il s'agit de la commande ou de la séquence de commandes qui seront exécutées lorsque le signal spécifié sera reçu.
* `signal` :Ceci est le numéro de signal ou le nom que vous souhaitez piéger.
Exemples
1. Gestion de `Sigint` (interruption):
`` `bash
Trap 'Echo "Interrompu! qui sort ..."; sortir 'int
`` '
Cela imprimera le message "Interrompu! Qui sort ...", puis quittera le script lorsque `ctrl + c` est enfoncé (qui envoie le signal` Sigint`).
2. Ignorer `Sigquit` (QUIT):
`` `bash
Pièger '' quitter
`` '
Cela ignorera le signal `Sigquit` (généralement envoyé par` ctrl + \ `) et l'empêchera de terminer le script.
3. Exécution d'un script de nettoyage:
`` `bash
Pièger la sortie de 'Cleanup.sh'
`` '
Cela exécutera le script `Cleanup.sh` lorsque le processus sortira, quelle que soit la raison de la terminaison.
Remarques importantes:
* La commande «Trap» n'affecte que le processus de coquille actuel.
* Si vous souhaitez gérer les signaux dans un processus enfant, vous devez utiliser «Trap» dans ce processus enfant.
* Vous pouvez utiliser l'option `-l` avec` Trap` pour répertorier tous les signaux disponibles.
En résumé, «Trap» fournit un mécanisme puissant pour gérer les signaux et contrôler le comportement de vos scripts UNIX en réponse à divers événements.
|