Bonjour,
J'ai le shell suivant :
Quand j'exécute ce shell j'ai le résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #!/bin/ksh # test="Y" reaffect () { test="N" echo "test dans la fonction= $test" } echo "test avant la fonction= $test" (echo "yo" || { reaffect && exit; } && reaffect) & echo "test apres la fonction= $test" exit
Cela signifie que mon process global ne reconnait pas la variable redéfinie dans la fonction quand je l'appelle de la manière suivante :test avant la fonction= Y
yo
test dans la fonction= N
test apres la fonction= Y
Et bien sûr, si je l'appelle de la manière suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 (echo "yo" || { reaffect && exit; } && reaffect) &
Alors j'obtiens le bon résultat, à savoir la valeur "N" en fin de shell :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 reaffect
Pouvez-vous m'aider svp ?test avant la fonction= Y
yo
test dans la fonction= N
test apres la fonction= N
Il faut absolument que je garde la manière d'appeler la fonction comme je l'ai écrite dans le code du shell.
Merci de votre aide,
Cat
Partager