This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: About ENV?


In article <3DAFAAB7.6070502@21cn.com>, Huang. wrote:
> Why env in cygwin work like these:

I am sure this is off topic, since all UNIX shells based on Bourne
shell will behave this way.  This is not specific to Cygwin.

> $ AAAA=aaa echo $AAAA

This syntax says: Set variable AAA to aaa in the environment of the
command "echo $AAA".  However, the command "echo $AAA" will echo the
value of variable AAA in the current environment, since the expansion
of variables occurs before the command is executed.

> $ AAAA=aaa; echo $AAAA
> aaa

According to the explanation above, this is expected behavior.

> $ echo $AAAA
> aaa

According to the explanation above, this is expected behavior.

To do what I think you want to test try the following:

     AAA=bbb eval 'echo $AAA in' ; echo $AAA out
or   AAA=bbb sh -c 'echo $AAA in' ; echo $AAA out
or   (AAA=bbb; echo $AAA in) ; echo $AAA out

All of these commands involve echoing the value of AAA in an environment
that is in the inner scope of the environment of the command line.

-- James



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]