Script bash

Résolu
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

1 réponse

  1. Contributeur
    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. #!/bin/bash 
      i=0 
      cat test.txt | (while read ligne 
      do 
              let $[ i+=1 ] 
      done 
      echo "$i"


      Cette solution fonctionne très bien, merci