existe uma maneira de listar todos os 'IDs de índice' (chaves) em uma variável de matriz associativa do bash?

24

Eu tenho esse array:

declare -A astr

Eu adiciono elementos a ele:

astr[elemA]=123
astr[elemB]=199

Mas mais tarde eu preciso saber quais são os IDs dos índices (elemA e elemB) e listá-los.

echo "${astr[@]}" #this only get me the values...
    
por Aquarius Power 23.09.2013 / 03:36

1 resposta

32

Você pode obter a lista de "chaves" para o array associativo assim:

$ echo "${!astr[@]}"
elemB elemA

Você pode iterar as "chaves" assim:

for i in "${!astr[@]}"
do   
  echo "key  : $i"
  echo "value: ${astr[$i]}"
done

Exemplo

$ for i in "${!astr[@]}"; do echo "key  : $i"; echo "value: ${astr[$i]}"; done
key  : elemB
value: 199
key  : elemA
value: 123

Referências

por 23.09.2013 / 03:43

Tags