bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to do? Possible?


From: Linda Walsh
Subject: Re: How to do? Possible?
Date: Mon, 25 Jul 2011 14:45:11 -0700
User-agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.24) Gecko/20100228 Thunderbird/2.0.0.24 Mnenhy/0.7.6.666


Linda Walsh wrote:
> 
> Bob Proulx wrote:
>> Yes, but it is a fork(2) of the parent shell and all of the variables
>> from the parent are copied along with the fork into the child process
>> and that includes non-exported variables.  Normally you would expect
>> that a subprocess wouldn't have access to parent shell variables
>> unless they were exported.  But with a subshell a copy of all
>> variables are available.
>>
>> Bob
> --
>   Not really.
>   It only seems that way because within () any "$xxxx" is usually
> expanded BEFORE the () starts from the parent....
> 
> You can see this by
>   GLOBAL="hi there"
>   (echo $GLOBAL)
> prints out "hi there" as expected, but if we hide
> $GLOBAL so it isn't seen by parent:
>   (foo=GLOBAL; echo ${!foo})
> prints ""
---
I mistyped that but it brings me to an interesting
conundrum:

GLOBAL="hi there"
{foo=GLOBAL echo ${!foo}; }

> (foo=GLOBAL echo ${!foo} )

But:
> { foo=GLOBAL;echo ${!foo}; }
hi there
> (foo=GLOBAL; echo ${!foo})
hi there
 ----
Weird...




reply via email to

[Prev in Thread] Current Thread [Next in Thread]