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!







Répondre avec citation
Partager