On 18/07/2019 14:12, Greg Wooledge wrote:

    On Thu, Jul 18, 2019 at 10:58:52AM +0200, Henning wrote:

                eval 'foo=(["key"]="'"${foo["key"]}"' value2")'


    If you just want to work around the bug, why not do it in the simplest
    way possible?

    foo["key"]+=" value2"

Of course, you are right.


Can be done safely with storing the intermediate value.

declare -A foo
foo=(["key"]="value1")
declare -p foo
_v="${foo["key"]}"
declare -p _v
foo=(["key"]="${_v} value2")
declare -p foo

Still safer than eval for an extra intermediary assignment.
And allow you to insert the old value of ${foo=["key"]} anywhere in-between. The += string concatenation would not work in this case.

--
Léa Gris

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to