Probleme boucle while en ksh

Bonjour à tous,
Je contacte le forum car je suis face à un mystère incroyable je ne comprends rien
donc: le but du jeu est de lire un fichier avec plusieures lignes classique
fichier cat fichier.TXT:
TOTO
TITI
TATA
DODO
j'ai fais un script en ksh :

##################################KSH#######
#!/bin/ksh

# je me positionne dans le directory
# je demande de lire le fichier en parametre fichier.TXT

cd /app/jnd/cells/Cell_RLE-Production_std/SCRIPT_UTILE
echo -e " veuillez rentrer le fichier CSV: \n"

read FIC

cat /app/jnd/cells/Cell_RLE-Production_std/SCRIPT_UTILE/fichier_traitement | grep -i "^[A-Z]*" |while read line

do
VAR1=`echo "$line" |grep -i '^[A-Z]*'`

jndProjectCtl.sh --project $VAR1 --all-instances status >> compte-rendu.TXT
sleep 10

done

comportement du script :

il traite que 2 lignes dans le fichier le reste il ne reconnait pas
je comprends rien tout me semble ok pourtant

si vous avez une idée ça serait cool

merci d'avance

2 réponses

  1. Contributeur
    hello
    des caractères spéciaux dans le fichier, est-ce un fichier Windows ?
    cat -A fichier
    0
    1. salut,

      pourquoi utiliser ksh, plutôt qu'un script sh ?
      je ne vois dans ton script aucun "kshisme".

      il faut être cohérent.
      #!/bin/sh

      #cd /app/jnd/cells/Cell_RLE-Production_std/SCRIPT_UTILE #inutile : il est rare qu'il soit utile de changer de répertoire dans un script.

      echo -e " veuillez rentrer le fichier CSV: \n"
      read FIC
      # il faut tester si $FIC existe, est un fichier, et est en lecture

      # UUOC !
      # cat /app/jnd/cells/Cell_RLE-Production_std/SCRIPT_UTILE/fichier_traitement | grep -i "^[A-Z]*" |while read line

      grep -i '^[A-Z]*' /app/jnd/cells/Cell_RLE-Production_std/SCRIPT_UTILE/"$FIC" \
      | while read line
      do
      # VAR1=`echo "$line" |grep -i '^[A-Z]*'` # inutile : le grep précédent a déjà sélectionné ces lignes
      # jndProjectCtl.sh --project $VAR1 --all-instances status >> compte-rendu.TXT
      echo jndProjectCtl.sh --project "$line" --all-instances status >> compte-rendu.TXT
      echo sleep 10
      done
      0