Eu tenho um programa que lê stdin e escreve para stdout. No meu exemplo, é cat
. Eu quero ter três scripts para fazer algo como o seguinte:
start.sh cat
criaria um processo em segundo plano e qualquer maquinário exigido pelos outros dois scripts.
write.sh <pid> "hello"
escreveria hello
no stdin do processo criado anteriormente, sem fechá-lo.
read.sh <pid>
iria ler o stdout desse processo, apenas a parte escrita desde a última leitura, neste caso o hello
, depois imprimi-lo e sair sem esperar por mais saída.
Eu entendo que posso ter (2) se eu criar um arquivo fifo. E eu posso ter (3) direcionando a saída para um arquivo e girando-o. Esta é uma solução normal? Parece um pouco ad hoc. Quais alternativas eu tenho?