Bonjour,

J'aimerai comprendre soit le pourquoi, soit le comment faire de la gestion des variables d'environnement dans une boucle while et surtout de leur propagation

Voici deux exemples de code semblables mais qui ne donnent pas le même résultat :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
FILE_ID=0
ls -w 1 /home | while read file
do
    echo "$FILE_ID"
    FILE_ID=$(( $FILE_ID + 1 ))
done
echo "final : $FILE_ID"
0
1
2
3
4
5
final : 0

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
FILE_ID=0
while read file
do
    echo "$FILE_ID"
    FILE_ID=$(( $FILE_ID + 1 ))
done <<EOF
`ls -w 1 /home`
EOF
echo "final : $FILE_ID"
0
1
2
3
4
5
final : 6
Comment se fait-il que dans le 1er cas la valeur de la variable FILE_ID ne survive pas au dela de la boucle while ?!

Merci pour vos éclairages !