Tablice asocjacyjne są domyślnie lokalne

Tablice asocjacyjne wydają się domyślnie lokalne, gdy są zadeklarowane wewnątrz ciała funkcji, gdzie powinny być globalne. Poniższy kod

#!/bin/bash

f() {
    declare -A map
    map[x]=a
    map[y]=b
}

f
echo x: ${map[x]} y: ${map[y]}

produkuje wyjście:

x:  y:

kiedy to

#!/bin/bash

declare -A map

f() {
    map[x]=a
    map[y]=b
}

f
echo x: ${map[x]} y: ${map[y]}

produkuje wyjście:

x: a y: b

Czy można zadeklarować globalną tablicę asocjacyjną w funkcji? Albo jakie obejście można wykorzystać?

questionAnswers(4)

yourAnswerToTheQuestion