Valider execution de plusieurs commandes

Résolu/Fermé
nicnictout - 14 sept. 2010 à 14:51
 nicnictout - 15 sept. 2010 à 10:58
Bonjour,

je me pose une question toute bête, je sais comment tester si une commande s'est bien executée avec un code style:

if [ $? -gt 0 ]


Mais imaginons maintenant que je doive écrire un script qui comprend parfois 15-20 commandes a exécuter à la suite, je voulais savoir si il existait une syntaxe pour tester que TOUTES ces commandes se sont bien déroulées, et ainsi éviter de mettre 50 tests pour 50 commandes...

Je ne sais pas si c'est faisable, et surtout je ne vois vraiment pas la syntaxe que cela peut avoir. J'ai bien pensé à une boucle while ou until, mais d'après les quelques tests rapides que j'ai effectués, si tout se passe bien, la boucle devient infinie !!

D'avance merci pour votre aide :)

2 réponses

dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
Modifié par dubcek le 14/09/2010 à 15:47
hello
err=0
après chaque commande :
err=$((err | $?))

à la fin, si err != 0, il y a eu une erreur
ou mettre les erreurs dans un tableau (xp et sh existent)
$ unset err n 
$ for x in xp xx sh aaa ; do ls $x &>/dev/null ; err[n++]=$? ; done 
$ echo ${err[@]} 
0 2 0 2 
$ 
1
Salut Dubcek,

désolé pour ma réponse tardive, j'ai repris tout mon script avec ta commande du coup, ca marche au poil :=)

Merci beaucoup.
0