Ho questo array:
declare -A astr
Aggiungo elementi ad esso:
astr[elemA]=123
astr[elemB]=199
Ma in seguito ho bisogno di sapere quali sono gli ID degli indici (elemA ed elemB) ed elencarli.
echo "${astr[@]}" #this only get me the values...
Ho questo array:
declare -A astr
Aggiungo elementi ad esso:
astr[elemA]=123
astr[elemB]=199
Ma in seguito ho bisogno di sapere quali sono gli ID degli indici (elemA ed elemB) ed elencarli.
echo "${astr[@]}" #this only get me the values...
Risposte:
È possibile ottenere l'elenco di "chiavi" per l'array associativo in questo modo:
$ echo "${!astr[@]}"
elemB elemA
Puoi scorrere le "chiavi" in questo modo:
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]}
non funziona, solo ${!var[@]}
o ${!var[*]}
non funziona :(
keys=(${!var[@]})
e poi ${keys[n]}
, dandomi l'indice, ma nello stesso tempo ho anche capito che dovevo ripensare il mio approccio.
astr2=(a b c d e);echo ${!astr2[@]};unset astr2[2];echo ${!astr2[@]}
!