Probleme boucle while en ksh

bong26 7 Messages postés lundi 22 mai 2017Date d'inscription 1 octobre 2017 Dernière intervention - 22 août 2017 à 12:33 - Dernière réponse : qqchquicommenceparQ 889 Messages postés dimanche 24 mai 2009Date d'inscription 15 décembre 2017 Dernière intervention
- 24 août 2017 à 11:46
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
Afficher la suite 

2 réponses

Répondre au sujet
dubcek 17191 Messages postés lundi 15 janvier 2007Date d'inscriptionContributeurStatut 15 décembre 2017 Dernière intervention - 23 août 2017 à 13:18
0
Utile
hello
des caractères spéciaux dans le fichier, est-ce un fichier Windows ?
cat -A fichier
Commenter la réponse de dubcek
qqchquicommenceparQ 889 Messages postés dimanche 24 mai 2009Date d'inscription 15 décembre 2017 Dernière intervention - 24 août 2017 à 11:46
0
Utile
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
Commenter la réponse de qqchquicommenceparQ