Matrizes associativas são locais por padrão

Matrizes associativas parecem ser locais por padrão quando declaradas dentro de um corpo de função, onde devem ser globais. O seguinte código

#!/bin/bash

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

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

produz a saída:

x:  y:

enquanto isso

#!/bin/bash

declare -A map

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

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

produz a saída:

x: a y: b

É possível declarar um array associativo global dentro de uma função? Ou que solução alternativa pode ser usada?

questionAnswers(4)

yourAnswerToTheQuestion