Boucle while en ksh

Résolu
Houston-12 Messages postés 33 Statut Membre -  
Houston-12 Messages postés 33 Statut Membre -
Bonjour,

Je réalise le script suivant :
NB=`ls /tmp/matt/fanion | wc -l`
while ((($NB!=1)&&[($(date +%H%M)<0630)||($(date +%H%M)>2200)]))
do
echo " dans la boucle " >> $ficlog
sleep 10
NB=`ls /tmp/matt/fanion | wc -l`
VAL=`($NB!=1) && [($(date +%H%M)<0630)])`
done

Quand je l'exécute, il me renvoie l'erreur :
./test.ksh[12]: ( 1!=1)&&[(1014<0630)||(1014>2200)]: syntax error

Doit on forcement mettre une seule condition par while ou peut on tout de même faire ce que j'ai écris.

Merci

2 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Et comme ça :
    while (($NB != 1)) && ( (($(date +%H%M) < 0630)) || (($(date +%H%M) > 2200)) )
    ça donne quoi ?
    1
    1. Houston-12 Messages postés 33 Statut Membre 1
       
      Merci beaucoup, cela fonctionne !
      0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Si tu ne testes pas d'abord cette condition :

    ( 1!=1) => [ "$NB" != 1 ]

    forcément la syntaxe n'est pas bonne ;-((
    0
    1. Houston-12 Messages postés 33 Statut Membre 1
       
      Salut,

      Si je fais
      while ((($NB!=1)))
      cela fonctionne. L'erreur n'apparait que lorsque je rajoute les autres conditions.
      0