Re: Pipe/redirect

Nicu <[email protected]> Sat, 28 Jul 2018 05:37:12 +0300
Newsgroups gmane.org.user-groups.rlug.general
Message-ID <CACT9Vvw08g2BmSTAUdEocSZaUVj-Y5=PCrKdXG4-E-hyyC-jhw@mail.gmail.com>
2018-07-28 1:53 GMT+03:00 MOROIANU Dragos <[email protected]>:
> [dmoroianu@hpchn01 ~]$ mkfifo t.bc
>
> [dmoroianu@hpchn01 ~]$ bc < t.bc
> acum intr-un alt terminal:
> [dmoroianu@hpchn01 ~]$ echo "2+3" > t.bc
> programul afiseaza '5' si iese fara sa mai astepte comanda 'quit'.
> Cum conving programul sa astepte si alte comenzi si sa iasa doar dupa ce ii trimit 'quit'?

mkfifo t.bc
bc < t.bc
...
exec 7>t.bc
echo 2 + 3 >&7
echo 4 + 5 >&7

ideea e sa tii FIFO-ul deschis; altfel, in momentul in care o comanda
de forma 'foo >out'  a fost executata, toti descriptorii care au fost
deschisi prin redirectionari sint inchisi, indiferent daca 'foo' e un
proces separat sau o comanda built-in; iar cind capatul de scriere al
unui FIFO e inchis, procesul din celalt capat primeste un EOF.