Signaler

Probleme boucle while en ksh

Posez votre question bong26 7Messages postés lundi 22 mai 2017Date d'inscription 1 octobre 2017 Dernière intervention - Dernière réponse le 24 août 2017 à 11:46 par qqchquicommenceparQ
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
Utile
+0
plus moins
hello
des caractères spéciaux dans le fichier, est-ce un fichier Windows ?
cat -A fichier
Donnez votre avis
Utile
+0
plus moins
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
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !