Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Bizarrerie en shell avec les codes retour
Envoyé par: kyak

Bonjour,

Voici ce petit script :

#!/bin/sh

Result2=0

ls
Result=$?

Result2=`expr $Result2 + $Result`


Ce qui est bizarre c'est qu'une fois ce script exécuté, si je fais un echo $? j'ai 1 comme code retour.

Et si dans ce script je rajoute "echo $Result2", et que je l'exécute, j'obtient 0 en faisant echo $?.

Je comprends pas.

Merci de vos réponse.


Poste le Thursday 10 April 2008 22:03:30
Répondre     Citer    
Re: Bizarrerie en shell avec les codes retour
Envoyé par: pgas

après le script $? affice le code de retour de ton script
le code de retour de ton script est le code de retour de la dernière instruction de ton script

dans le premier cas tu obtiens le code de retour de Result2=`expr $Result2 + $Result` qui
est en fait le code de retour de expr 0 + 0 qui est 1

dans le second cas tu obtiens le code de retour de "echo $Result2" qui est 0

Poste le Saturday 12 April 2008 06:01:49
Répondre     Citer    
Re: Bizarrerie en shell avec les codes retour
Envoyé par: undeplus

Hmm, c'est faux : le code de retour de expr x + y est 0 puisque cette commande ne produit aucune erreur.

C'est en effet une question intéressante. Pourquoi lorsque qu'un script se fini par une affectation, le code de retour est 1 ? Où est l'erreur ? Le shell nous informe t-il qu'il est stupide de finir sur une affectation ?

Ce topic aurait plus sa place dans le forum développement mais bon.

Poste le Sunday 13 April 2008 12:03:14
Répondre     Citer    
Re: Bizarrerie en shell avec les codes retour
Envoyé par: pgas

extrait de man expr:

Exit status is 0 if EXPRESSION is neither null nor 0, 1 if EXPRESSION
is null or 0, 2 if EXPRESSION is syntactically invalid, and 3 if an
error occurred.

Le code de retour est:
0 si EXPRESSION n'est ni null ni 0
1 si EXPRESSION est null ou 0
2 si la syntaxde de EXPRESSION est invalide
3 si un erreur ce produit

dans le cas si dessus les 2 variables sont egale a 0
expr 0 + 0 affiche 0, le resultat de l'expression mais le code de retour est 1

Poste le Sunday 13 April 2008 13:58:42
Répondre     Citer    
Re: Bizarrerie en shell avec les codes retour
Envoyé par: pgas

et promis la prochaine fois je corrige ces horribles fautes d'ortographe et autres avant de poster....

Poste le Sunday 13 April 2008 14:40:33
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Bizarrerie en shell avec les codes retour
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons