Por que o comando abaixo não sai? Em vez de sair, o loop é executado indefinidamente.
Embora eu tenha descoberto esse comportamento usando uma instalação mais complexa, a forma mais simples do comando se reduz ao seguinte.
Não sai:
while /usr/bin/true ; do echo "ok" | cat ; done | exit 1
Não há erros de digitação acima. Cada '|' é um cano. A 'saída 1' representa outro processo que foi executado e encerrado.
Eu espero que a "saída 1" cause um SIGPIPE no loop while (escreva em um pipe sem leitor) e que o loop saia. Mas, o loop continua em execução.
Por que o comando não para?