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

1 réponse

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
    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