Alors, voici mon script:chat de Bash, alors, laissez et le tuyau conduisant à un comportement de cadrage étrange
count=0
cat myfile | while read line
do
#some stuff...
let count++
echo $count
done
echo $count
La dernière sortie echo 0 au lieu du nombre de lignes dans le fichier, bien que la déclaration d'écho dans la while loop imprime la valeur d'incrémentation.
Le problème est avec la tuyauterie, car, avec une simple boucle while, la dernière instruction echo imprime la valeur correcte. Comment puis-je faire en sorte que cela fonctionne?
Merci, mais je voudrais aussi lire le fichier à l'envers, en utilisant tac. Puis-je le faire en utilisant ... done
subb
Non, malheureusement pas. Pour contourner le problème, vous pouvez afficher le contenu du fichier dans un fichier temporaire et en lire le contenu. Je vais mettre à jour ma réponse avec un exemple. – Lekensteyn
Merci! Je n'y ai pas pensé. – subb