Traitement de fichier

keurel Messages postés 23 Statut Membre -  
bob031 Messages postés 8228 Statut Membre -
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. bob031 Messages postés 8228 Statut Membre 473
     
    bonjour,

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

    :-))
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      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
      1. bob031 Messages postés 8228 Statut Membre 473 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        salut JiPi,

        au temps pour moi ... :-)
        0