Script bash

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,

Voici le code de mon script, mon fichier text.txt est de la forme:
3 test
6 rzqrqzr

#!/bin/bash
i=0

cat test.txt | while read ligne
do
        let $[ i+=1 ]
done

echo "$i"


Le compteur devrait m'affiche deux, mais j'obtient 0, pk?

Merci
A voir également:

1 réponse

dubcek Messages postés 19021 Statut Contributeur 5 637
 
hello
la variable i est incrémentée dans une sous-tâche due au | et donc perdue à la fin du while
essayer
#!/bin/bash 
i=0 
cat test.txt | (while read ligne 
do 
        let $[ i+=1 ] 
done 
echo "$i")

ou
#!/bin/bash 
i=0 
while read ligne 
do 
        let $[ i+=1 ] 
done < test.txt 
echo "$i"
1
Utilisateur anonyme
 
#!/bin/bash 
i=0 
cat test.txt | (while read ligne 
do 
        let $[ i+=1 ] 
done 
echo "$i"


Cette solution fonctionne très bien, merci
0