|
From: | Linda Walsh |
Subject: | Re: 'local -x VARIABLE' does not clear variable for subprocesses |
Date: | Sat, 03 May 2014 19:59:34 -0700 |
User-agent: | Thunderbird |
Arfrever Frehtes Taifersar Arahesis wrote:
bash 4.2.47: $ export VAR1=abc VAR2=abc $ f() { local VAR1; local -x VAR2; bash -c 'declare -p VAR{1,2}'; } $ f bash: line 0: declare: VAR1: not found bash: line 0: declare: VAR2: not found bash 4.3.11: $ export VAR1=abc VAR2=abc $ f() { local VAR1; local -x VAR2; bash -c 'declare -p VAR{1,2}'; } $ f declare -x VAR1="abc" declare -x VAR2="abc"
--- What's especially peculiar is that if you change VAR1+VAR2 in 'f', then the called bash in 'f' should still see the original value of VAR1 as it was not exported (but it sees both values as assigned in 'f'. I.e. Changing 'f' above to read: $ f() { local VAR1=1; local -x VAR2=2; bash -c 'declare -p VAR{1,2}'; } $ f declare -x VAR1="1" declare -x VAR2="2" ---- Note, the exportation of the local value from 'f()' of 'VAR1' to a child process was also in 4.2.
[Prev in Thread] | Current Thread | [Next in Thread] |