Probleme sur loop while

Résolu
Temus Messages postés 3 Statut Membre -  
Temus Messages postés 3 Statut Membre -
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. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

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

    Ou un passage à la ligne :
    while [[ $i -lt $NHYCPAR]] 
    do ...
    0
  2. Temus Messages postés 3 Statut Membre
     
    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.
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Oups... il manque un espace avant les doubles crochets fermants ;-(
      while [[ $i -lt $NHYCPAR ]]; do ...
      0
    2. Temus Messages postés 3 Statut Membre
       
      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!
      0