Las matrices asociativas son locales por defecto

Las matrices asociativas parecen ser locales por defecto cuando se declaran dentro de un cuerpo de función, donde deberían ser globales. El siguiente codigo

#!/bin/bash

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

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

produce la salida:

x:  y:

mientras esto

#!/bin/bash

declare -A map

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

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

produce la salida:

x: a y: b

¿Es posible declarar una matriz asociativa global dentro de una función? ¿O qué solución puede usarse?

Respuestas a la pregunta(4)

Su respuesta a la pregunta