J'ai un problème dans un de mes Shell Shell. J'ai posé la question à quelques collègues, mais ils se contentent tous de secouer la tête (après s'être un peu grattés), alors je suis venu ici pour trouver une réponse.
D'après ce que j'ai compris, le Shell Shell suivant devrait afficher "Count is 5" à la dernière ligne. Mais ce n'est pas le cas. Il affiche "Count is 0". Si le "while read" est remplacé par n'importe quel autre type de boucle, cela fonctionne parfaitement. Voici le Shell :
echo "1">input.data
echo "2">>input.data
echo "3">>input.data
echo "4">>input.data
echo "5">>input.data
CNT=0
cat input.data | while read ;
do
let CNT++;
echo "Counting to $CNT"
done
echo "Count is $CNT"
Pourquoi cela se produit-il et comment puis-je l'éviter ? J'ai essayé dans Debian Lenny et Squeeze, même résultat (c'est-à-dire bash 3.2.39 et bash 4.1.5. J'admets tout à fait ne pas être un magicien de Shell Shell, donc toute indication serait appréciée.