Ассоциативные массивы являются локальными по умолчанию
Ассоциативные массивы кажутся локальными по умолчанию при объявлении внутри тела функции, где они должны быть глобальными. Следующий код
#!/bin/bash
f() {
declare -A map
map[x]=a
map[y]=b
}
f
echo x: ${map[x]} y: ${map[y]}
производит вывод:
x: y:
пока это
#!/bin/bash
declare -A map
f() {
map[x]=a
map[y]=b
}
f
echo x: ${map[x]} y: ${map[y]}
производит вывод:
x: a y: b
Можно ли объявить глобальный ассоциативный массив внутри функции? Или какой обходной путь можно использовать?