On Tue, Dec 24, 2013 at 8:56 PM, Greg Wooledge <wool...@eeg.ccf.org> wrote:
> On Tue, Dec 24, 2013 at 07:49:28PM +0100, rens wrote: > > I understand the technical origin of the behaviour. > > Spend +25 yrs in unix. I am so old, that I remember fighting (at my > > 40th) with linux 0.79, I think.... > > > > However, I am questioning if this is what a programming language should > do. > > Stop thinking of bash as a programming language. It is a command shell. > > Pipelines invoke multiple processes simultaneously. That's their purpose: > to run a bunch of things in parallel, with linked input/output. Each > process is just that -- a process. A full-blown separate running program > with its own PID, its own private memory and file descriptors, and so on. > > Moreover, the behavior of bash is constrained by 40+ years of unix shell > history. It implements the feature set specified by POSIX, as well as > doing its best to be backwards compatible with older versions of itself, > and to a much smaller extent, with ksh and sometimes even csh. > > If you want a shell that breaks out of that mold and does things in a > new way, then perhaps you want zsh. > > If you want an interpreted programming language instead of a shell, > there are a bunch to choose from. > > If I remember correctly, POSIX allows the lastpipe behaviour. As far as not explaining the behaviour, mr rens clearly said he was not interested in any kind of understanding.