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?