Ассоциативные массивы являются локальными по умолчанию

Ассоциативные массивы кажутся локальными по умолчанию при объявлении внутри тела функции, где они должны быть глобальными. Следующий код

#!/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

Можно ли объявить глобальный ассоциативный массив внутри функции? Или какой обходной путь можно использовать?

Ответы на вопрос(4)

Ваш ответ на вопрос