Estou tentando entender melhor o SIGPIPE no Linux.
Eu executei este experimento: { ls -al /tmp/ ; echo "$?" 1>&2 ; } | head
e ele ecoa 141
o que eu entendo ser um código de saída fornecido para processos que saem com SIGPIPE
Anteriormente, eu fazia muito isso sem entender as nuances SIGPIPE
e geralmente executo set -eEuo pipefail
isso, estava tentando entender por que meu o código não falhava o tempo todo devido a canos quebrados... Então fiz esse outro experimento: ( set -o pipefail; { ls -al /tmp/ ; echo "$?" 1>&2 ; } | head; )
e obtive um 0 no eco daquela vez... então, quando pipefail
está ativado, isso significa que SIGPIPE
está suprimido? ou estou entendendo mal o que está acontecendo aqui?