[rlug] Pipe/redirect

Nicu lucrari.in.pregatire at gmail.com
Sat Jul 28 05:37:12 EEST 2018


2018-07-28 1:53 GMT+03:00 MOROIANU Dragos <dmoroian at yahoo.com>:
> [dmoroianu at hpchn01 ~]$ mkfifo t.bc
>
> [dmoroianu at hpchn01 ~]$ bc < t.bc
> acum intr-un alt terminal:
> [dmoroianu at 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.




More information about the RLUG mailing list