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?