Modifier les variables d'appel...

Modifier les variables d'appel... - Shell/Batch - Programmation

Marsh Posté le 06-12-2004 à 08:58:03    

        Bonjour,
 
Je voudrais faire cela :
 

Code :
  1. function mafunc()
  2. {
  3.     if [ $1 -ge 60 ]
  4.     then
  5.       $1=`expr $1-60` 
  6.     fi
  7. }


 
Mais comment ??? $1= ca fonctionne pas fort....
Mais surtout, est-ce possible ???? Car je ne peux pas retourner la variable, j'ai plusieurs variables d'appel à modifier dans cette fonction.
 
Merci d'avance pour vos réponses.


---------------
La raison du plus fort est toujours la plus forte.... Parce que c'est comme ça NA !
Reply

Marsh Posté le 06-12-2004 à 08:58:03   

Reply

Marsh Posté le 06-12-2004 à 09:18:07    

Alors ???
 
Personne ? Même as une petite idée ? à savoir que je prend tout de manière à pouvoir retourner 2 variables modifier de cette fonction.


---------------
La raison du plus fort est toujours la plus forte.... Parce que c'est comme ça NA !
Reply

Marsh Posté le 06-12-2004 à 12:05:59    

Peut etre que je vais te dire une betise, j'suis pas bien fort en prog lol, je debute, mais essaye avec %1 a la place de $1.
 
ps: j'adore ta signature lol

Reply

Marsh Posté le 06-12-2004 à 13:32:30    

tu peux faire un return dans ta function.


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
Reply

Marsh Posté le 06-12-2004 à 13:38:29    

Code :
  1. function mafunc()
  2. {
  3.         [ $1 -gt 60 ] && return $(($1-60))
  4. }
  5. mafunc 80
  6. echo $?


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
Reply

Marsh Posté le 06-12-2004 à 15:31:22    

"return" c'est fait pour retourner un code d'erreur, pas une valeur a utiliser ailleurs.
 
Tu ne peux pas modifier $1 car $1 est local a ta fonction (c'est le premier argument passe a la fonction. Donc tu as deux solutions :

  • Utiliser une autre variable, genre TOTO=`expr $1 - 60`
  • Faire un echo du resultat dans ta fonction, et appeler ta fonction entre back quotes

Reply

Marsh Posté le 06-12-2004 à 15:33:27    

mon code fonctionne :D mais l'idée du echo est plus propre.
 
par contre je conseille l'utilisation de $() plutot que ``. cai mieux :o


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
Reply

Marsh Posté le 06-12-2004 à 17:15:23    

Ton code fonctionne, mais c'est limite a 0-255.

Reply

Marsh Posté le 06-12-2004 à 17:22:45    

ha ouais merde :)
 
le echo est dc la solution. :)


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
Reply

Marsh Posté le 08-12-2004 à 13:55:29    

Zaib3k a écrit :

mon code fonctionne :D mais l'idée du echo est plus propre.
 
par contre je conseille l'utilisation de $() plutot que ``. cai mieux :o


 
Le "$()" est caractéristique d'un certain shell. Les backquotes `` sont standard. Le mieux serait donc d'utiliser le standard multishell plutôt que la caractéristique monoshell non ???
 
Par ailleurs, l'utilisation du "echo", qouique très bonne, te condamne à ne mettre, dans ta fonction, que des "echo" destinés à être récupérés. Tu n'as plus le droit de mettre du "echo" pour afficher des informations diverses et agréables mais qui seront vues comme "parasites" lorsque tu feras "var=`maFonction`


Message édité par Sve@r le 08-12-2004 à 13:57:55
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed