Re: Piping wc causes error
Kye Hunter <[email protected]>
| Newsgroups | gmane.comp.shells.bash.bugs |
|---|---|
| Message-ID | <[email protected]> |
Hi Chet, Thanks for the info! -Kye On 12/15/25 9:34 PM, Chet Ramey wrote: > On 12/13/25 7:53 AM, Kye Hunter wrote: > >> Bash Version: 5.3 >> Patch Level: 8 >> Release Status: release >> >> Description: >> To start, I'm not totally sure if this is a bug with bash or with wc, >> as wc is the only program I have noticed this behavior in, but this >> seems like a good place to start. > > It's neither. It's not a bug at all, in fact. You correctly identify the > issue: > > >> The inconsistent behavior makes this seem like a race, perhaps, in >> the script below, head is trying to close the pipe before wc finishes >> writing to it, causing it to return the error. > > But it doesn't have anything to do with bash. Consider the following > sequence (at this point, bash is not in the picture; it's waiting for > its children to terminate): > > wc writes the first line (of 7) to stdout, a pipe > head reads the first line from the pipe > head writes the single line to its stdout > head exits with status 0 > wc writes the second line to stdout > wc receives SIGPIPE, a fatal signal, and exits as a result > > after which > > bash collects head's termination status (0) > bash collects wc's termination status and converts it to 141 (128 + > SIGPIPE) > pipefail is set, so bash sets $? to 141 > > This is just how pipes work. Writing on a pipe with no reader, and > exiting > due to the resultant SIGPIPE, is common and expected. You would never > have > noticed if you hadn't enabled `pipefail'. > -- Kye E. Hunter PGP: 6859 E2DE D598 49EA 9319 10CD DEF2 BA03 A6BE 3062 --
OpenPGP_0xDEF2BA03A6BE3062.asc
(application/pgp-keys, 16.5 KB)
-----BEGIN PGP PUBLIC KEY BLOCK----- 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 2Yxey97PeCAaDmfIDyOKaszbiaWia54= =C8LG -----END PGP PUBLIC KEY BLOCK-----
OpenPGP_signature.asc
(application/pgp-signature, 840 B)
-----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEE6rtd//+VJLjpVVklKgTRkYDBcJYFAmlKWHEFAwAAAAAACgkQKgTRkYDBcJY+ Wg/9HWk41xgwBDWGxMC//7PZBGW4S8nzcUzzzvJagVXiZLIjgtcn4BNH4Ih20Hi4HKO+QYasS7WV fkJPLtxa2s5SLfFjVAps0iAdesf/pmlPH7K0+7ijIgkG/TDNO+6xqzZsvv1MXFgJ/UV8uzBKypbb uKyLMDNdPNUGp02h4hv7f4nbeHoGSU/LAIqvC51YJkZnp5bzZAV5E8eS4tVOfuMSPQQ5El6vOaii YYCVgMGK5sGiGUHc+MEc1XZOmApkT68Y5ZpCkDAieBC0xCQFPY8lfbRYy6rpsivYbUzyyxgvsI3B eX/nD32YmNXkCu6+f9+lEGzL5WZ4BbI4lLc7PWFGlWNRCSsmvFy+PyjETf/ODAEdFwTZ1ZhgkpZl dzhmUwCz6f21N/e0Z+T6HmUfIUH8I4Yw+tfp8NdwfjANqbB0hFyF7IFDuXVUBUXAIe2bnL8M7B6x WhZWhpONB4OseY3KG419v/1qrFJaW+DS9o/K0M6Pes84NtQqwzdiDrXTLb9ZvLIhDlkNbilAB81b lt5HQBi7Hqx/Gy26TQ4OgDyM+wCc4eayXY0t3YXT7vEXPCwwJ8cz82a8DqoPH9c3hG+3TPu2sXTm lhhQKLHm6pyZgjQhYGz+nNwEDw7X3vbbg1Mclg02QBGfCVl3iDeP3MEC9OQy4vThiJ+nCs8PjF4e huc= =NMHI -----END PGP SIGNATURE-----