Re: problem with redir test

2016-12-02 Thread Vladimir Marek
> > during testing of latest bash on Solaris I found strange behavior. We
> > run the tests with clear environment (env -). It seems to be caused by
> > undefined SHELL variable. The test reported
> > 
> > 150,151c150,151
> > < ./redir11.sub: line 26: echo: write error: Bad file number
> > < ./redir11.sub: line 27: echo: write error: Bad file number
> > ---
> >> ./redir11.sub: line 26: $(a=4 foo): Bad file number
> >> ./redir11.sub: line 27: $(a=4 foo): Bad file number
> 
> I can't reproduce this.  The key is that redir11.sub inherits file
> descriptor 3 as an fd open for read on /etc/passwd, and echo gets a
> write error when trying to write to it.  This might also be affected
> by SHELLOPTS setting posix mode, but I can't reproduce it even when
> setting SHELLOPTS=posix in the environment.
> 
> It's also hard to see why starting bash  without SHELL in the environment
> sould make such a difference, since bash sets SHELL to the current user's
> login shell, as found via getpwent.

Thank you for looking into this, I'll try to find out more.

-- 
Vlad



Re: problem with redir test

2016-12-01 Thread Chet Ramey
On 12/1/16 2:35 PM, Vladimir Marek wrote:
> Hi,
> 
> during testing of latest bash on Solaris I found strange behavior. We
> run the tests with clear environment (env -). It seems to be caused by
> undefined SHELL variable. The test reported
> 
> 150,151c150,151
> < ./redir11.sub: line 26: echo: write error: Bad file number
> < ./redir11.sub: line 27: echo: write error: Bad file number
> ---
>> ./redir11.sub: line 26: $(a=4 foo): Bad file number
>> ./redir11.sub: line 27: $(a=4 foo): Bad file number

I can't reproduce this.  The key is that redir11.sub inherits file
descriptor 3 as an fd open for read on /etc/passwd, and echo gets a
write error when trying to write to it.  This might also be affected
by SHELLOPTS setting posix mode, but I can't reproduce it even when
setting SHELLOPTS=posix in the environment.

It's also hard to see why starting bash  without SHELL in the environment
sould make such a difference, since bash sets SHELL to the current user's
login shell, as found via getpwent.

Chet


-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRUc...@case.eduhttp://cnswww.cns.cwru.edu/~chet/