coproc
Um processo em segundo plano com dois canos ligados ao shell.
O coproc lança um comando em segundo plano e deixa dois descritores na mesa: ${NOME[0]} lê a saída dele, ${NOME[1]} escreve na entrada. O PID fica em $NOME_PID.
É uma conversa de mão dupla com um processo vivo — uma calculadora, um interpretador — sem arquivos nem FIFOs nomeados. Chegou no bash 4.0; o zsh tem um coproc próprio, mais antigo, falado com print -p e read -p.
$ coproc CALC { bc -l; }
[1] 4242
$ echo "3*7" >&${CALC[1]}
$ read -u ${CALC[0]} resposta
$ echo $resposta
21