Digamos que temos um pipeline simples:
set -eo pipefail;
echo 'foo' | cat
como cat
sabe quando sair? É quando o fluxo STDIN termina ou cat
recebe um sinal? No meu caso, o processo produtor recebe um SIGINT e sai com o código 1, então como pode cat
(processo consumidor) saber com qual código de saída o processo produtor saiu?
cat
não sabe sobreecho
os sinais de . Ele recebe condição de fim de arquivo por man pipe(7) :Para os escritores do pipe, no entanto, existe o SIGPIPE. Veja a mesma página de manual