On 2/18/15 2:30 PM, SN wrote:
> Thanks for checking it on various versions! In 4.4.0(1)-devel this test
> passes for a few variations I tried. For example:
>
> $ f() { declare -a a="()"; eval "declare -p a"; printf "[%s]\n"
> "${a[@]}"; }; f
> declare -a a=([0]="()")
> [()]
>
> and
>
> $ f() { declare -a a=(); eval "declare -p a"; printf "[%s]\n" "${a[@]}";
> }; f
> declare -a a=()
> []
>
> so it's good.
That's one of the changes to bash-4.4 that isn't backwards compatible.
Right now, you have to set the shell compatibility level to get bash-4.3
behavior; I'm considering changing bash-4.4 to have compatible behavior
when using quoted compound array assignment, but with a warning about
the syntax being deprecated. What do folks on the list think?
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU [email protected] http://cnswww.cns.cwru.edu/~chet/