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 - <fe...@f-hauri.ch> - http://www.f-hauri.ch