Accueil > Astuces OSXFAQ > Jeudi - Poser une Trappe sur une Section de Code

Jeudi - Poser une Trappe sur une Section de Code

Limitez vos fonctions trappes qu’à la partie critique d’un script, souvent autour d’un nombre de commandes ne devant pas être interrompues.

Ce script attrape les signaux HUP, INT et TERM autour du code critique puis pousse le gestionnaire vers le code normal.

$ cat trap3
#!/bin/bash

handlesig () { echo "Got an INT" #...... }
# critical code - stop interrupts trap "handlesig" HUP INT TERM
echo "Critical code"
# use sleep to represent a lengthy block of code sleep 1; sleep 1; sleep 1; sleep 1; sleep 1; sleep 1 sleep 1; sleep 1; sleep 1; sleep 1; sleep 1; sleep 1
# normal code - allow interrupts trap - HUP INT TERM
echo "Normal code" sleep 1000

L’instruction :

trap - SIGNAL-LIST

retire un gestionnaire des signaux listés et le remplace par celui par défaut (s’il y en a un).

$ ./trap3

Critical code

Got an INT

^CGot an INT

Normal code

Hangup

Dans une autre fenêtre (en utilisant la fonction killsig de Lundi) :

$ killsig HUP trap3

(wait a bit until normal code is entered)

$ killsig HUP trap3


Parlez de cette astuce dans le Learning Center forum (en anglais sur osxfaq.com)


Si vous souhaitez en apprendre plus sur Mac OS X Unix visitez le Learning Center
 cliquez ici.

  • Pour les débutants : Le Tutoriel Mac OS X Unix
  • Pour plus d’informations sur des sujets spécifiques : Mac OS X Advanced Unix
  • Pour des réponses à des problèmes communs : Mac OS X How To

Thierry Astuces OSXFAQ

  1. Pas encore de commentaire
  1. Pas encore de trackbacks
Vous devez être identifié pour poster un commentaire