Tengo esta matriz:
declare -A astr
Le agrego elementos:
astr[elemA]=123
astr[elemB]=199
Pero más adelante necesito saber cuáles son los ID de los índices (elemA y elemB) y enumerarlos.
echo "${astr[@]}" #this only get me the values...
Tengo esta matriz:
declare -A astr
Le agrego elementos:
astr[elemA]=123
astr[elemB]=199
Pero más adelante necesito saber cuáles son los ID de los índices (elemA y elemB) y enumerarlos.
echo "${astr[@]}" #this only get me the values...
Respuestas:
Puede obtener la lista de "claves" para la matriz asociativa de la siguiente manera:
$ echo "${!astr[@]}"
elemB elemA
Puede iterar sobre las "teclas" de esta manera:
for i in "${!astr[@]}"
do
echo "key : $i"
echo "value: ${astr[$i]}"
done
$ for i in "${!astr[@]}"; do echo "key : $i"; echo "value: ${astr[$i]}"; done
key : elemB
value: 199
key : elemA
value: 123
${!var[index]}
no funciona, solo ${!var[@]}
o ${!var[*]}
no :(
keys=(${!var[@]})
y luego ${keys[n]}
, dándome el índice, pero al mismo tiempo también me di cuenta de que necesitaba repensar mi enfoque.
astr2=(a b c d e);echo ${!astr2[@]};unset astr2[2];echo ${!astr2[@]}
thx!