Bonjour à tous & à toutes,

Je me suis lancé dans un projet de scripting Bash pour apprendre à utiliser les Named Pipe.

Ecrire & lire dans un Named Pipe (FIFO) ne me pose pas de problème. Mais la "double" communication, elle, si.

En fait, j'aimerai que mes scripts fassent ceci:
1er script:
--------------------------------------------------------------------------
demon
Il comportera un nombre à deviner.

2ème script
client
Il fera des propositions au demon afin de trouver le nombre qu'il contient.
--------------------------------------------------------------------------

Le démon répondra "le nombre est > à ce que vous avez proposé" (ou < ou = -> si égal bingo le script client s'arrête, mais pas le demon)


Au niveau de l'affichage, cela se représente comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$ ./demon
Vous avez essayé le nombre 10
Vous avez essayé le nombre 15
Vous avez essayé le nombre 12
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
$ ./client
Votre proposition:
10
10 n'est pas le bon nombre, c'est > au nombre à trouver
Votre proposition:
15
15 n'est pas le bon nombre, c'est < au nombre à trouver
Votre proposition:
12
Bingo!
// on sort du script
$

La génération du nombre dans le demon ne doit pas être prise en compte. Tout ce qui est switch pour retourner le < > ou = ne me pose pas de problème.

J'arrive à faire la lecture quand on fait la proposition, et donc l'affichage de demon, mais par contre je n'arrive pas à renvoyer une valeur à mon client, et donc savoir si on a trouvé ou non...

Mes script en sont là pour les NamedPipe:
demon:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
#!/bin/bash
MYVAR="10"
while read f ; do
        echo "valeur" $f 
done < tube1


client:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
#!/bin/bash
while :
do
        cat > tube1
done

Je voulais faire en sorte que dans mon script demon, je fasse un genre de "echo $result > tube2" et donc de faire un cat < tube2 dans mon client, mais cela ne fonctionne pas...

Je ne suis pas sûre d'être sur la bonne voix...

Si quelqu'un pouvait éclairer ma lanterne, ca serait vraiment sympa!