On Wed, Oct 23, 2013 at 01:17:12PM -0700, Evan Gates wrote:
> declare -A aarr
> aarr[\]]=rbrac
> declare -p aarr # this should print a legal declaration for aarr
> eval $(declare -p aarr) # results in "bash: []]=rbrac: bad array subscript"
Cannot reproduce in bash 4.3-beta2.
imadev:~$ unset a
imadev:~$ declare -A a; a[\]]=foo
imadev:~$ declare -p a
declare -A a='(["]"]="foo" )'
imadev:~$ eval "$(declare -p a)"
imadev:~$ eval $(declare -p a)
imadev:~$ echo $BASH_VERSION
4.3.0(1)-beta2
Looks like it was fixed since 4.2:
imadev:~$ bash-4.2 -c 'unset a; declare -A a; a[\]]=foo; eval $(declare -p a)'
bash-4.2: []]=foo: bad array subscript