[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [50 character or so descriptive subject here (for reference)] env va
From: |
Al Elgert |
Subject: |
Re: [50 character or so descriptive subject here (for reference)] env variables dropped by bash-2.05 |
Date: |
Tue, 15 Jan 2002 10:35:27 +0100 |
User-agent: |
Mutt/1.3.25i |
On Mon, Jan 14, 2002 at 12:49:50PM -0500, Paul Jarc wrote:
> elgert@rbg.informatik.tu-darmstadt.de (Al Elgert) wrote:
> > And now consider this function:
> > bash-2.05$ function fff() { local i=0 x; x=10; echo "|$i|$x|"; }
> > bash-2.05$ fff
> > |0|10|
> > bash-2.05$ x=1 fff
> > |0|10|
>
> This output is correct. If you want the function to be sensitive to
> an environment variable setting, you have to write it that way:
> fff() { local i=0 x="${x-10}"; echo "|$i|$x|"; }
This does not work, as expected - can I have the Output of your test ?
It is useless to use a Variable as a local Value, if you override the
environment then the Variable is of no use in the function:
bash-2.05$ fff() { local i=0 x="${x-10}"; echo "|$i|$x|"; }
bash-2.05$ x=11 fff
|0||
bash-2.04$ fff() { local i=0 x="${x-10}"; echo "|$i|$x|"; }
bash-2.04$ x=11 fff
|0|11|
The output in bash-2.05 schould be "|0|11|" OR "|0|10|" but it is "|0||".
changing the function, where x is defined local and then assigned separately
gives a result which is just as bad:
bash-2.05$ fff() { local i=0 x; x="${x-10}"; echo "|$i|$x|"; }
bash-2.05$ x=11 fff
|0|10|
bash-2.04$ fff() { local i=0 x; x="${x-10}"; echo "|$i|$x|"; }
bash-2.04$ x=11 fff
|0|11|
again, the assignment "x=11" is ignored by the bash-2.05.
The bash-2.05 destroys any variable given in this way including the local
variables of the function, this is a total change to bash-2.04.
I don't think it is a good idea to drop these variables completely.
greetings
Alexander
PS: my .bashrc is too big *sigh*
-rwxr-xr-x 1 elgert student 412927 Jan 14 17:56 .bashrc
PPS:
I wrote a few portable functions, which could be placed as examples
in the bash distribution. If it is to your interest, please contact me.
--
Alexander Elgert
Public Gruppe
RechnerBetriebsGruppe TU Darmstadt (FB 20) Tel: +49 06151 16-4333
Raum: S1/13 11a (alt 25/11a)
[50 character or so descriptive subject here (for reference)], elk, 2002/01/21
[50 character or so descriptive subject here (for reference)], benchoff, 2002/01/25
Re: [50 character or so descriptive subject here (for reference)], Chet Ramey, 2002/01/28
Re: [50 character or so descriptive subject here (for reference)], Chet Ramey, 2002/01/28