Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 31 May 2013 14:47:03 -0500
From:      Dan Nelson <dnelson@allantgroup.com>
To:        Reid Linnemann <linnemannr@gmail.com>
Cc:        "<rank1seeker@gmail.com>" <rank1seeker@gmail.com>, FreeBSD Hackers <hackers@freebsd.org>, Jilles Tjoelker <jilles@stack.nl>
Subject:   Re: /bin/sh => STDIN & functions, var scope messing
Message-ID:  <20130531194703.GC5410@dan.emsphone.com>
In-Reply-To: <CA%2B0MdpP6JKMyoQCTDihCRSqHHVDfy1w3ip%2BqWhFgXRqfMYODow@mail.gmail.com>
References:  <20130527.194235.693.1@DOMY-PC> <CA%2B0MdpOcz7aw03HCrbxZVt1cnWdR4shqWaEfBrQkCpPnbgXLPQ@mail.gmail.com> <CAKw7uVjty2cJXT_QmexxKdRQyiKoHYMK1E-TjSHa5TCX1S8Bbg@mail.gmail.com> <20130530223031.GA1672@stack.nl> <20130531.175959.745.2@DOMY-PC> <13CA24D6AB415D428143D44749F57D7201F6AD11@ltcfiswmsgmb21> <CA%2B0MdpP6JKMyoQCTDihCRSqHHVDfy1w3ip%2BqWhFgXRqfMYODow@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In the last episode (May 31), Reid Linnemann said:
> On Fri, May 31, 2013 at 1:12 PM, Teske, Devin <Devin.Teske@fisglobal.com>wrote:
> > If you're arguing we have to change sh's behavior to be more compliant,
> > jilles already quoted XCU 2.12 (our shell is well within its right to
> > run any/all lvalue/rvalue operands of a pipe in a sub-shell without
> > contradicting the guidelines).
> >
> > But if you're arguing that it has to change to make things better or
> > easier...  I don't know about that.  Might just make people lulled into
> > using a style that's non-portable.  I'd like to keep things the way they
> > are so that if you program for FreeBSD, you're inherently going to
> > program in a fashion that is more portable.
> 
> FWIW bash (invoked as sh) on RHEL-based linux systems exhibits the same
> behavior-
> 
> sh-3.2$ var=1
> sh-3.2$ yes|var=2
> sh-3.2$ echo $var
> 1
> sh-3.2$
> 
> If my opinion matters at all, I would agree that for the sake of
> portability that behavior be consistent with the majority of sh
> implementations rather than "right" according to arbitrary ruling.

On the other hand, zsh runs the last component of a pipeline in the parent
shell.  The usual model is "do work in pipeline, process results in final
component", and being able to simply set variables there that can be used in
the rest of the script is very elegant.

-- 
	Dan Nelson
	dnelson@allantgroup.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130531194703.GC5410>