Namespace problem with pipe into a braced group

2010-02-23 Thread tobi
Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: linux-gnu
Compiler: gcc -I/usr/src/packages/BUILD/bash-3.1 
-L/usr/src/packages/BUILD/bash-3.1/../readline-5.1
Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64' 
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_64-suse-linux-gnu' 
-DCONF_VENDOR='suse' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL 
-DHAVE_CONFIG_H   -I.  -I. -I./include -I./lib   -O2 -fmessage-length=0 -Wall 
-D_FORTIFY_SOURCE=2 -g -D_GNU_SOURCE -DRECYCLES_PIDS -Wall -pipe -g -fPIE 
-fbranch-probabilities
uname output: Linux t60 2.6.18.8-0.13-default #1 SMP Thu Nov 6 13:35:13 UTC 
2008 x86_64 x86_64 x86_64 GNU/Linux
Machine Type: x86_64-suse-linux-gnu

Bash Version: 3.1
Patch Level: 17
Release Status: release

Description:
I would have expected the output to be 2 in both cases.  My mistake or 
yours?  :-)

Repeat-By:
a=1; echo foo;{ a=2; }; echo $a # output: 2
a=1; echo foo|{ a=2; }; echo $a # output: 1

Bug or feature?




Re: Namespace problem with pipe into a braced group

2010-02-23 Thread Chris F.A. Johnson
On Tue, 23 Feb 2010, t...@icada.com wrote:

 Configuration Information [Automatically generated, do not change]:
 Machine: x86_64
 OS: linux-gnu
 Compiler: gcc -I/usr/src/packages/BUILD/bash-3.1 
 -L/usr/src/packages/BUILD/bash-3.1/../readline-5.1
 Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64' 
 -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_64-suse-linux-gnu' 
 -DCONF_VENDOR='suse' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL 
 -DHAVE_CONFIG_H   -I.  -I. -I./include -I./lib   -O2 -fmessage-length=0 -Wall 
 -D_FORTIFY_SOURCE=2 -g -D_GNU_SOURCE -DRECYCLES_PIDS -Wall -pipe -g -fPIE 
 -fbranch-probabilities
 uname output: Linux t60 2.6.18.8-0.13-default #1 SMP Thu Nov 6 13:35:13 UTC 
 2008 x86_64 x86_64 x86_64 GNU/Linux
 Machine Type: x86_64-suse-linux-gnu
 
 Bash Version: 3.1
 Patch Level: 17
 Release Status: release
 
 Description:
   I would have expected the output to be 2 in both cases.  My mistake or 
 yours?  :-)
 
 Repeat-By:
   a=1; echo foo;{ a=2; }; echo $a # output: 2
   a=1; echo foo|{ a=2; }; echo $a # output: 1
 
   Bug or feature?

   Standard behaviour; all components of a pipeline are executed in a
   subshell.

-- 
   Chris F.A. Johnson  http://cfajohnson.com
   ===
   Author:
   Shell Scripting Recipes: A Problem-Solution Approach (2005, Apress)
   Pro Bash Programming: Scripting the GNU/Linux Shell (2009, Apress)




Re: Namespace problem with pipe into a braced group

2010-02-23 Thread Chet Ramey
On 2/23/10 4:23 AM, t...@icada.com wrote:

 Description:
   I would have expected the output to be 2 in both cases.  My mistake or 
 yours?  :-)
 
 Repeat-By:
   a=1; echo foo;{ a=2; }; echo $a # output: 2
   a=1; echo foo|{ a=2; }; echo $a # output: 1

Yours.  Please read the Bash FAQ, question E4.


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