Bash] Boucle while - export variable - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 14-02-2007 à 14:28:54
Problème vicieux du "cat | while read"....
En fait tu bosses dans le subshell lancé par ta "lecture de pipe", ta variable est modifiée dans ce subshell mais pas dans ton shell courant.
C'est un peu comme si tu faisais un (TOTO=42; cmd1 && cmd2) > plop.txt, le subshell qui lance cmd1 && cmd2 voit dans son environnement TOTO=42, mais dans ton shell courant il n'y a jamais eu de TOTO...
Si tu veux compter le nombre de lignes, utilise plutôt wc (man wc)
Marsh Posté le 14-02-2007 à 11:56:42
Bonjour,
J'ai une question... quand j'exécute le script suivant :
#!/bin/bash
I=-1;
cat file.txt | while read REF_LINE
do
{
let I++;
}
done
echo "I = "$I;
J=-1;
while [ $J -lt 100 ]
do
{
let J++;
}
done
echo "J = "$J;
j'obtiens l'affichage :
I = -1
J = 100
Pourquoi la variable I n'est elle pas exportée hors de la boucle?
Et surtout, comment faire pour récupérer sa valeur?
Merci d'avance de votre aide