Traitement de fichier

Bonjour,
j'ai pas trouvé l'erreur
#!/bin/bash
fichier="/home/user/mahran"
cat $fichier | while true

do
read ligne
if [ -z $ligne ]

then
break
fi

set -- $ligne
prenom=$1
nom=$2
s1=${prenom:0:2}

echo $s1
done
------------------------------------------
voila l'execution :
script10: line 10: [: baccouch: binary operator expected
ba
Configuration: Linux Suse
Firefox 2.0

1 réponse

  1. bonjour,

    si il y a if, il ne faut pas else ?

    :-))
    0
    1. Modérateur
      Salut Bobby,

      Pas nécessairement, dans le cas de notre ami keurel, il teste voir si sa variable n'est pas une chaîne vide, donc une seule condition suffit, si vide alors sortir de la boucle "do ... done", dans le cas contraire le "else" se fait tout seul (sinon continuer l'exécution de la boucle "do ... done")

      ;-))

      Salut keurel,

      Essaie plutôt comme ça :
      #! /bin/bash
      
      fichier="/home/user/mahran" 
      
      while read ligne
      do
              set -- "$ligne"
              prenom=$1
              nom=$2
              s1=${prenom:0:2}
      
              echo $s1
      done < "$fichier"
      ;-))
      0
    2. @jipicysalut JiPi,

      au temps pour moi ... :-)
      0