Date: Tue, 11 Apr 2000 00:39:14 +0500
Message-Id: <200004101939.AAA00860@midpec.com>
From: Prashant TR
To: djgpp-workers AT delorie DOT com
In-reply-to: (message from Eli
Zaretskii on Mon, 10 Apr 2000 19:50:16 +0200 (IST))
Subject: Re: Porting problems with Sh-utils (beta)
References:
Reply-To: djgpp-workers AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp-workers AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com
Precedence: bulk
>
> On Mon, 10 Apr 2000, Mark E. wrote:
>
> > Actually, I think the snippet should be modified to:
> >
> > > all:
> > > source='There is no bug in BASH!' ; \
> > > $(SHELL) ./script ;
> > > echo `echo`script executed
> > >
> >
> > Line continuation is fine, but you still have to use ';' for multiple
> > commands. With the modified version, 'echo $source' is empty inside
> > './script', but I think that's correct since the value isn't exported.
>
> No, I don't think so, on both counts. The syntax "foo=bar baz" is a
> valid Unix shell syntax of a single command: it assigns the value "bar"
> to the variable `foo' and then runs the command `baz' while exporting
> to it this value of `foo'.
I agree with Eli. In the second example (and the first), ./script is the
shell-script being executed and everything else is just a command line that's
passed to it. So, in both cases, the value of source must be passed on to this
script. If not, why is it that only `...` causes the problem, while everything
else seems to work fine?
What I think is happening is that the value of source is being lost after the
execution of the 1st process (that's `echo`). And since the script is invoked
next (the 2nd process to run), the "source" value is for some reason not passed
on which I think is a bug.