J'ai un programme qui se ferme automatiquement lors de la lecture d'un EOF dans un flux donné (dans le cas suivant, stdin).
Maintenant, je veux créer un script shell, qui crée un canal nommé et y connecte le stdin du programme. Ensuite, le script écrit plusieurs fois dans le tuyau à l' aide de echo
et cat
(et d'autres outils qui génèrent automatiquement un EOF à leur sortie). Le problème auquel je suis confronté est que, lorsque le premier echo
est terminé, il envoie un EOF au tuyau et fait quitter le programme. Si j'utilise quelque chose comme tail -f
ça, je ne peux pas envoyer d'EOF lorsque j'ai l'intention de quitter le programme. Je recherche une solution équilibrée mais en vain.
J'ai déjà trouvé à la fois comment empêcher les EOF et comment envoyer manuellement un EOF mais je ne peux pas les combiner. Y a-t-il un indice?
#!/bin/sh
mkfifo P
program < P & : # Run in background
# < P tail -n +1 -f | program
echo some stuff > P # Prevent EOF?
cat more_stuff.txt > P # Prevent EOF?
send_eof > P # How can I do this?
# fg
exec 3>P
cause accroche bash, pourquoi?