Boucle while en ksh

Résolu
Houston-12 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   -  
Houston-12 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   -
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

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

Si tu ne testes pas d'abord cette condition :

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

forcément la syntaxe n'est pas bonne ;-((
0
Houston-12 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   1
 
Salut,

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