Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1436 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Comportement bizzare sur test du resultat d'une ligne de script

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comportement bizzare sur test du resultat d'une ligne de script

n°487964
zedros
Posté le 27-05-2004 à 08:58:30  profilanswer
 

Salut
 
Encore moi... Faut dire que les scripts en ce moment j'en mange un peu  :pt1cable:  
 
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  :ouch:  
 
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

mood
Publicité
Posté le 27-05-2004 à 08:58:30  profilanswer
 

n°488046
bobuse
Posté le 27-05-2004 à 10:42:25  profilanswer
 

tu confonds && et || ;)
commande 1 && commande2 : commande 2 s'exécute seulement si commande1 s'est terminée correctement (code de retour 0) !

n°488999
zedros
Posté le 28-05-2004 à 01:22:38  profilanswer
 

Arg... Trop con moi !
 
Ben, euh, merci bcp !

n°489007
matafan
Posté le 28-05-2004 à 03:31:25  profilanswer
 

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 }

n°491820
zedros
Posté le 01-06-2004 à 05:57:19  profilanswer
 

Va pour les accolades !
 
Encore merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Comportement bizzare sur test du resultat d'une ligne de script

 

Sujets relatifs
resultat de uname -n : Comment le changerMagasin en ligne du monde libre
Lancer une commande ds 1 script Novellcreation partition en ligne de commande
Envoyer "entree" a un script appelle depuis un autre script...Lire une video en ligne de commande (sans X) avec mplayer : solution
[SCRIPT SHELL] Convertion de date[script shell linux] demande d'aide
Script TCL pour eggdropLancement d'un script: n'afficher que STDERR
Plus de sujets relatifs à : Comportement bizzare sur test du resultat d'une ligne de script


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR