Mais dans ce cas retval aura toujours la valeur 1, la boucle sera infini.
Non, la valeur "1" n'est attribuée que si la variable n'est pas définie, ce qui est le cas avant la 1ère boucle, mais pas dans les autres boucles.
Quoi qu'il en soit, la 1ère solution marchait aussi, la variable renvoyant une valeur vide différente de "0"...
Voilà un exemple :
jp@MDK:~/tmpfs ssh$ cat kloorane # fichier de référence
Mais dans ce cas retval aura toujours la valeur 1, la boucle sera infini.
Or moi ce que je veux c'est:
1- Faire le grep "Server started in RUNNING mode" /app/wlsa.log >/dev/null
2- Récuperer le resultat du grep
3-Si cette valeur est différente de 0 refaire le grep tant que la valeur est différente de 0.
A un moment la valeur du grep sera égale à 0 et là il faudra sortir de la boucle.
J'espere que c'est plus clair.
Merci pour ton aide précisese
jp@MDK:~/tmpfs ssh$ cat foo.sh # le script
#! /bin/bash
unset retval # on efface la variable
while [ "$retval" != "0" ]
do
grep "jipicy" kloorane # on cherche "jipicy" dans le fichier de référence
retval=$?
sleep 3 # permettra d'introduire le mot "jipicy" en cours d'exécution
echo "Toujours dans la boucle"
done
echo
echo "La valeur a été trouvée"
echo "Arrêt du script"
exit 0
jp@MDK:~/tmpfs ssh$ sh foo.sh # lancement du script
Toujours dans la boucle # Pas de valeur "jipicy" de trouver
Toujours dans la boucle # idem
Toujours dans la boucle # idem
Toujours dans la boucle # La valeur est envoyée
jipicy # la valeur est trouvée
Toujours dans la boucle # la boucle s'arrêtera après ça
La valeur a été trouvée
Arrêt du script
jp@MDK:~/tmpfs ssh$
La valeur a été envoyée pendant l'exécution du script sous la forme :
echo "jipicy" >> kloorane
;-))
Z'@+...che.JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.