URL: https://linuxfr.org/forums/general-cherche-logiciel/posts/un-script-dapel-qui-se-bloque-lors-dune-erreur Title: Un script d'apel qui se bloque lors d'une erreur Authors: Fr3nChY Date: 2006年03月20日T14:41:30+01:00 Tags: Score: 0 Tout d'abord bonjour. Je débute totalement sous linux, je suis en bts et mon projet se deroule sous cet OS. Je ne demande aucunement qu'on me fasse mon travail biensur ^^ mais juste qu'on m'aide. Je dois réaliser un script en bash qui appelle plusieurs numéros. Le numéro répond alors il y a l'envoie d'un fichier. Des que le fichier est envoyé le script continue et numérote le prochain numéro de mon tableau. Si le numéro répond alors tout se déroule sans problème et le script continue. Mais si le numéro est faux, ou occupé, ou pas de décrochage alors le script se ferme et ne tente pas la numérotation de la suite de mon tableau. En gros j'aimerais savoir comment faire pour que mon script ne s'arrète pas des lors qu'il y a une erreur. Est ce qu'il existe quelque chose du même type que "Try > Catch" mais en bash? Voici déja ce que j'ai fait: #!/bin/bash #--- Déclaration --- tel=(542 10 0) #0 pour signaler la fin dateuh=`date` ligne=" " #--- Fonction qui compte le nombre de telephone du tableau --- nb=0 #Déclaration du nombre de tel à 0 while [ ${tel[$nb]} != 0 ] #Tant que ce qu'il y a dans le tableau est different de 0 do #Faire nb=$((nb+1)) #nb = nb + 1 done #--- Fonction qui passe les appels --- for (( i=0; i < nb; i++ )) #Boucle jusqu'à la fin des numéros do #Faire echo Connexion vers... ${tel[$i]} #Affiche Connexion vers... numéro /usr/sbin/pppd connect "/usr/sbin/chat -v '' ATZ OK ATDT,${tel[$i]} CONNECT ''" /dev/ttyS0 38400 & pid_connexion=$! sleep 35 ping -c 1 192.168.0.9 if [ $? == '0' ] #Si le resultat obtenue est 0 then succes_connexion="[SUCCES]: La connexion vers ${tel[$i]} a reussi @ $dateuh" echo $succes_connexion >> etat.log ncftpput -u user -p pass -t 60 -V 192.168.0.9 /home/testS/ /home/testC/test.txt sleep 20 if [ $? == '0' ] then succes_envoie="[SUCCES]: L'envoie vers ${tel[$i]} a reussi @ $dateuh" echo $succes_envoie >> etat.log echo $ligne >> etat.log kill $pid_connexion & else echec_envoie="[SUCCES]: L'envoie vers ${tel[$i]} a échoué @ $dateuh" echo $echec_envoie >> etat.log echo $ligne >> etat.log fi else erreur_connexion="[ERREUR]: La connexion vers ${tel[$i]} a échoué @ $dateuh" erreur_envoie2="[ERREUR]: L'envoie vers ${tel[$i]} a DONC échoué @ $dateuh" echo $erreur_connexion >> etat.log echo $erreur_envoie2 >> etat.log echo $ligne >> etat.log fi done