Et hop, encore une, un peu plus délicate à résumer en 5/6 lignes celle-ci :
Si votre script comporte quelques processus sensibles, vous risquez de l'être aussi quant à une interruption brutale de votre script par un CTRL-C. Pour éviter cette situation, on peut traquer le signal d'interruption et rediriger vers une fonction de sortie propre si le signal est détecté. C'est une des vocations de la fonction trap. Cette fonction de sortie pourrait par ex supprimer les fichiers temporaires que vous avez pu créé, arrêter des processus lancés par votre script, et enfin chercher à arrêter proprement votre script
Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #!/bin/bash trap 'clean_exit' SIGINT function clean_exit(){ kill -15 $$ & wait $! # Si ça marche pas, soyons plus brutaux kill -9 $$ } # Une boucle infinie ((count=0) while : do echo "$count: bah j'attends, comme Charles" sleep 3 ((count++) done
Partager