Comportement étrange ksh sur linux
Je n'arrive pas à comprendre un comportement en ksh. Voici le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
# définition de i a 0
typeset -i i=0
while [[ $i -ne 2 ]]
do
echo $i
# modification de i
i=$i+1
done
# en dehors de la boucle, i a été modifié et la valeur est bien 2
echo $i
touch toto.txt
echo "99" > toto.txt
# ici par contre, je modifie i
cat toto.txt |while read PROCPID
do
# ici par contre, je modifie i
i=4
done
echo $i
# m'affiche toujours 2.... |
Pourquoi la valeur que je modifie dans la seconde boucle est illisible en dehors alors que la première l'est ?