Probleme sur loop while

Résolu
Bonjour à tous,

je viens ici car je rencontre un étrange problème dans l'écriture d'un script ksh:

i=0
while [[ $i -lt $NHYCPAR]] do

    ListVar='find . -name'${HYCPAR[$i]}.nc''
    if [-z $ListVar]
        then
            echo "variable "${HYCPAR[$i]}" non-presente"
        else
            ncrcat ListVar ${NC_FIN}/${HYCPAR[$i]}.nc
    fi
i=$(($i+1))
done


et quand j'éxécute il me dit
"unexpected do" pourtant partout sur le net je n'ai trouvé que cette syntaxe pour les boucles while :(

Auriez-vous une idée?

2 réponses

  1. Contributeur
    Salut,

    Il manque un point virgule avant le "do" :
    while [[ $i -lt $NHYCPAR]]; do ...

    Ou un passage à la ligne :
    while [[ $i -lt $NHYCPAR]] 
    do ...
    1. oh rage! oh désespoir!

      J'ai essayé ces deux syntaxes également mais rien n'y fait...

      Quand j'essaie avec le ; il me dit "unexpected ;"

      Et avec l'autre toujours "unexpected do".

      up: il semblerait que l'espace avec le $i de la condition du while contenait un char invisible car en le supprimant une erreur subsiste mais totalement différente. Merci des suggestions syntaxiques en tout cas.
      1. Contributeur
        Oups... il manque un espace avant les doubles crochets fermants ;-(
        while [[ $i -lt $NHYCPAR ]]; do ...
      2. ah oui tiens. Ca marche mieux avec un espace au debut et à la fin de la condition...Bizarre çà. Bon une erreure persiste mais encore autre chose^^ ca ne rentre plus dans le cadre du topic ;)

        Merci du coup de main!