2025年12月24日(水) 0:03 Chet Ramey <[email protected]>:
> On 12/22/25 11:05 AM, Koichi Murase wrote:
> > 2025年12月23日(火) 0:21 Greg Wooledge <[email protected]>:
> >> hobbit:~$ declare -A aa=("${kv[@]}"); declare -p aa
> >> declare -A aa=(["one 1 two 2 two and a half 2.5 three 3"]="" )
> >
> > I agree that the above behavior is wrong.
>
> You would like word splitting in this one specific case?
No, not specific to the above exact form. I request that shell
expansions (including word splitting) be applied to ALL
non-subscripted words in the compound list.
> Treating `declare'
> as a declaration utility in all cases except this one?
Could you explain in a bit more detail? It seems that treating «kv=(k1
v1); declare -A aa=("${kv[@]}")» as «declare -A aa; aa[k1]=v1» seems
exactly what has been made possible as a declaration utility. In the
first place, if it were not a declaration utility, the entire compound
assignment would be a syntax error. Also, the traditional behavior of
indexed arrays «x='1 2 3 4'; declare -a a=($x)» results in «a=(1 2 3
4)» (but not in «a=('1 2 3 4')» as you suggest for the associative
array).
--
Koichi
> --
> ``The lyf so short, the craft so long to lerne.'' - Chaucer
> ``Ars longa, vita brevis'' - Hippocrates
> Chet Ramey, UTech, CWRU [email protected] http://tiswww.cwru.edu/~chet/