This seem linked:
$ f() {
local -a a=('' 'foo');
local -n b=a[1];
echo $b;
b+=\ bar;
echo $b;
declare -p a;
}
$ f
foo
foo bar
declare -a a=([0]="" [1]="foo bar")
Ok, fine!
$ bash <(declare -f f | sed '1,2d; $s/.*/echo $BASH_VERSION/;
s/local /declare /;')
foo
fooa[1] bar
declare -a a=([0]="" [1]="fooa[1] bar")
5.1.4(1)-release
There is something!
New try:
$ f() {
local -ai a=(0 12);
local -n b=a[1];
echo $b;
b+=4;
echo $b;
declare -p a;
}
$ f
12
16
declare -ai a=([0]="0" [1]="16")
Seem good!
$ bash <(declare -f f |
sed '1,2d;$s/.*/echo $BASH_VERSION/;s/local /declare /;')
12
/dev/fd/63: line 4: a[1]4: syntax error in expression (error token is "4")
12
declare -ai a=([0]="0" [1]="12")
5.1.4(1)-release
--
Félix Hauri - <[email protected]> - http://www.f-hauri.ch