Harald van Dijk wrote, on 18 Mar 2025: > > On 18/03/2025 14:45, Geoff Clare via austin-group-l at The Open Group wrote: > > Those shells also print "hello" without the redirection: > > > > $ sh -c 'set +m; echo hello | { cat & wait; }' # sh here is bash > > hello > > $ ksh93u+m -c 'set -o posix; set +m; echo hello | { cat & wait; }' > > hello > > > > So this has nothing to do with 0<&0 - it's a non-conformance with the > > non-job-control asynchronous AND-OR list requirements in some > > circumstances. > > Huh, so they do. > > bosh also does the same. > > If bash, ksh, bosh all do the same thing, but POSIX specifies another thing, > is there a rationale somewhere explaining why?
I can't think of any reason they would deliberately behave that way, so unless one of the shell authors can come up with some justification, I'm going to consider it a bug. > But still, in bash, 0<&0 really does have this effect. Here is a better test > case: > > $ bash -o posix -c 'cat & wait' > <immediately exits> > $ bash -o posix -c 'cat 0<&0 & wait' > <waits for stdin> Okay, looks like we'll need Chet's input on this part. -- Geoff Clare <g.cl...@opengroup.org> The Open Group, Apex Plaza, Forbury Road, Reading, RG1 1AX, England