Subject: Re: bug in sh?
To: None <jonb@alfred.ons.octel.com>
From: Chet Ramey <chet@odin.INS.CWRU.Edu>
List: current-users
Date: 05/25/1995 11:28:29
> Could someone tell me if this is proper behavior for sh, a known bug,
> or a newly discovered critter?  the shell was suped just a few days ago,
> rebuilt and installed.  Anyway, here is what happened:

This is not a bug in sh.

> grep "^$1" ./data | read key data1 data2 data3

This `read' command is performed in a subshell, since it is part of a
pipeline.  A subshell cannot affect the values of variables in its
parent.

> grep "^$1" ./data | while read key data1 data2 data3
> do
>    echo $key - $data1 - $data2 - $data3
> done

The `read' and `echo' are part of the same subshell in this code
fragment, so the variables have values.

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer

Chet Ramey, Case Western Reserve University	Internet: chet@po.CWRU.Edu