Valider execution de plusieurs commandes

Résolu
nicnictout -  
 nicnictout -
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

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    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
  2. nicnictout
     
    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