Boucle while en ksh

Résolu/Fermé
Houston-12 Messages postés 33 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 23 juin 2009 - 11 mai 2009 à 10:23
Houston-12 Messages postés 33 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 23 juin 2009 - 11 mai 2009 à 13:21
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
11 mai 2009 à 12:26
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 jeudi 18 décembre 2003 Statut Membre Dernière intervention 23 juin 2009 1
11 mai 2009 à 13:21
Merci beaucoup, cela fonctionne !
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
11 mai 2009 à 11:42
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 jeudi 18 décembre 2003 Statut Membre Dernière intervention 23 juin 2009 1
11 mai 2009 à 11:54
Salut,

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