On Sat, Jul 20, 2024 at 06:30:42 +0800, p...@gmx.it wrote:
> On 2024-07-20 06:25, Greg Wooledge wrote:
> > > 
> > > I can not clearly understand for this statement. what's "future shell
> > > commands"? can you show an example?
> > 
> > hobbit:~$ unset -v VAR
> > hobbit:~$ VAR=bar; ./a.sh
> > I am a.sh, and inside me, VAR=<>.
> > hobbit:~$ echo "VAR=<$VAR>"
> > VAR=<bar>
> 
> OK I know that. $VAR can be seen by future shell command in this
> session, but cannot be seen by a sub-shell such as a.sh.

a.sh is NOT a subshell.  That's really super important.

a.sh is a NON-subshell child process.

In an actual subshell, you *would* see the variable, because subshells
inherit regular variables as well as environment variables.

hobbit:~$ unset -v VAR
hobbit:~$ VAR=foo; (echo "I am a subshell, and VAR=<$VAR>")
I am a subshell, and VAR=<foo>
hobbit:~$ ./a.sh
I am a.sh, and inside me, VAR=<>.

https://mywiki.wooledge.org/SubShell

Reply via email to