Comportement bizzare sur test du resultat d'une ligne de script - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 27-05-2004 à 10:42:25
tu confonds && et ||
commande 1 && commande2 : commande 2 s'exécute seulement si commande1 s'est terminée correctement (code de retour 0) !
Marsh Posté le 28-05-2004 à 03:31:25
Puis c'est pas le seul problème : avec ta ligne tu sortira toujours avec un exit code de 1, même en cas de succès. Ce qui est après le « ; » est en effet toujours exécuté. Tu peux soit utiliser un beau if then fi, soit mettre des accolades :
./build || { echo "Error, value : $?" ; exit 1 } |
Marsh Posté le 27-05-2004 à 08:58:30
Salut
Encore moi... Faut dire que les scripts en ce moment j'en mange un peu
J'ai une ligne qui me fait un comportement bizarre :
./build && echo "Error, value : $?" ; exit 1
Normalement, avec d'autres commandes avec le &&, tout se passe bien (enfin il me semble) : si les commandes passent pas de soucis, sinon le message d'erreur s'affiche et le programme s'arrete.
Cependant, j'ai une commande avec laquelle ca ne marche pas, voila ce que ca fait :
Error, value : 0
Sachant que 0 est le "code retour normal", je vois mal comment l'echo "Error.." peut s'afficher...
Pour info, si je lance le ./build dans un shell puis qu'a la ligne suivante je fais $?, j'obtiens aussi "bash: 0". Bref, normalement mon script ./build marche (il en a toutes les apparences du moins !).
Je precise aussi que le script est un peu long, ca peut peut etre influence le && ?
J'espere que vous m'avez compris et que vous pouvez me dire pourquoi j'ai ce resultat assez incoherent pour moi !
Merci d'avance !
++
ZedroS