How to pass an associative array as argument to a function in Bash?

Как передать ассоциативный массив в качестве аргумента функции? Возможно ли это в Bash?

Приведенный ниже код работает не так, как ожидалось:

function iterateArray
{
    local ADATA="${@}"            # associative array

for key in "${!ADATA[@]}"
do
    echo "key - ${key}"
    echo "value: ${ADATA[$key]}"

done

}

Передача ассоциативных массивов в функцию, как обычные массивы, не работает:

iterateArray "$A_DATA"

или

iterateArray "$A_DATA[@]"
36
задан lecodesportif 4 September 2011 в 00:00
поделиться