Hi,
I have a question about associative array behavior in Bash 5.3.
When using literal initialization:
declare -A params=(a 1 b 2)
Bash correctly interprets the elements as key/value pairs.
declare -p params
Output:
declare -A params=([b]="2" [a]="1" )
But when using runtime assignment:
local -A params=("$@")
or:
declare -A params=("${array[@]}")
Bash does not interpret the arguments as key/value pairs, and instead
produces something like:
declare -p params
declare -A params=(["a 1 b 2"]="")
My question is:
Is this behavior intentional design, or is it considered a bug / limitation
of associative array assignment?
If this is intentional, could you clarify why runtime assignment does not
follow the same key/value parsing rules as literal initialization?
Thanks!