Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 May 1998 10:36:37 +0100
From:      Brian Somers <brian@Awfulhak.org>
To:        "John W. DeBoskey" <jwd@unx.sas.com>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: Unexpected behaviour from pdksh. Comments? 
Message-ID:  <199805100936.KAA20765@awfulhak.org>
In-Reply-To: Your message of "Sat, 09 May 1998 21:52:21 EDT." <199805100152.AA24180@mozart> 

next in thread | previous in thread | raw e-mail | index | archive | help
The *only* shell that executes the last bit of a pipe inline is  the 
original ksh.  Pdksh, zsh, sh, ash, bash and probably just about all 
other shells create a subshell.

This is a pain - 

something | read this that theother

must be changed to

read this that theother <<eof
`something`
eof

It's too late to change the other shells now though.

> Hi,
> 
> The following is on 3.0-CURRENT using pdksh.
> 
> Given the following sample Korn Shell script:
> 
> export FOO=foo
> echo $FOO
> 
> echo bar | while read var; do
>    export FOO=$var
>    echo $FOO
> done
> 
> echo $FOO
> 
> The output is:
> foo
> bar
> foo
> 
> where I was expecting:
> foo
> bar
> bar
> 
> 
> 
> 
>   If I put the value 'bar' in a file and change the while
> loop to:
> 
> echo bar > varfile
> while read var; do
>    export FOO=$var
>    echo $FOO
> done < varfile
> 
>   I get the expected reult with the above.
> 
>   It seems that the pipe '|' is causing the 'while read var' to
> execute in a subshell. Does anyone know of a way to make this
> work the way I am expecting it to? fyi: this seems to work ok
> under hpux 9.05 & 10.20 and SunOS 5.6...
> 
> Thanks,
> John
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-hackers" in the body of the message

-- 
Brian <brian@Awfulhak.org>, <brian@FreeBSD.org>, <brian@OpenBSD.org>
      <http://www.Awfulhak.org>;
Don't _EVER_ lose your sense of humour....



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



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