On Wed, Feb 05 2014, Chet Ramey wrote:
> On 2/4/14, 2:34 AM, Michal Sojka wrote:
>
>> Bash Version: 4.2
>> Patch Level: 45
>> Release Status: release
>>
>> Description:
>> The following commands fail:
>>
>> coproc while true; do echo $RANDOM; done
>> cat <&${COPROC[0]} | cat
>>
>> The resulting error message is:
>>
>> bash: ${COPROC[0]}: Bad file descriptor
>
> Bash closes file descriptors associated with coprocs in child processes,
> since they are pipes. It's even more careful when those child processes
> are part of pipelines. It's really a bad idea to have pipe file
> descriptors open in multiple processes; that prevents SIGPIPE generation
> and EOF on read when one writer exits.
Thanks for the explanation. Then the bug is that it is not documented:
https://www.gnu.org/software/bash/manual/bashref.html#Coprocesses
Btw. zsh allows using file descriptors this way.
Best regards,
-Michal