J'ai ce tableau:
declare -A astr
J'y ajoute des éléments:
astr[elemA]=123
astr[elemB]=199
Mais plus tard, j'ai besoin de savoir quels sont les ID des index (elemA et elemB) et de les énumérer.
echo "${astr[@]}" #this only get me the values...
J'ai ce tableau:
declare -A astr
J'y ajoute des éléments:
astr[elemA]=123
astr[elemB]=199
Mais plus tard, j'ai besoin de savoir quels sont les ID des index (elemA et elemB) et de les énumérer.
echo "${astr[@]}" #this only get me the values...
Réponses:
Vous pouvez obtenir la liste des "clés" pour le tableau associatif comme ceci:
$ echo "${!astr[@]}"
elemB elemA
Vous pouvez parcourir les "clés" comme ceci:
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]}cela ne fonctionne pas, seulement ${!var[@]}ou fonctionne ${!var[*]}:(
keys=(${!var[@]})et ensuite ${keys[n]}, en me donnant l'index, mais à la même époque, j'ai également réalisé que je devais repenser mon approche.
astr2=(a b c d e);echo ${!astr2[@]};unset astr2[2];echo ${!astr2[@]}thx!