Modifier une variable globale

Modifier une variable globale - Shell/Batch - Programmation

Marsh Posté le 06-01-2006 à 11:19:50    

Bonjour,
juste une petite question stupide

Code :
  1. test=0
  2. function() reaffect{
  3. test=5
  4. echo "test dans la fonction= $test"
  5. }
  6. echo "test avant la fonction= $test"
  7. reaffect
  8. echo "test apres la fonction= $test"


 
affiche la sortie :

Code :
  1. test avant la fonction= 0
  2. test dans la fonction= 5
  3. test apres la fonction= 0


 
pourquoi la valeur de test n'est pas modifié apres passage dans la fonction???
Comment fait on pour modifier une variable globale dans une fonction?
merci d'avance


Message édité par yoshi42 le 06-01-2006 à 11:20:19
Reply

Marsh Posté le 06-01-2006 à 11:19:50   

Reply

Marsh Posté le 06-01-2006 à 11:34:52    

export test

Reply

Marsh Posté le 10-01-2006 à 05:38:01    

Rien à voir avec export. A mon avis c'est juste que ta définition de fonction est foireuse. La bonne manière de définir une fonction, c'est :

function_name () {
        ...
}


Sans utiliser "function", et sans oublier l'espace avant la parenthèse. Donc, dans ton cas :

test=0
 
reaffect () {
        test=5
        echo "test dans la fonction= $test"
}
 
echo "test avant la fonction= $test"
reaffect
echo "test apres la fonction= $test"


Message édité par matafan le 10-01-2006 à 05:38:28
Reply

Sujets relatifs:

Leave a Replay

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