Bash連想配列変数にすべての「インデックスID」(キー)を一覧表示する方法はありますか?

Bash連想配列変数にすべての「インデックスID」(キー)を一覧表示する方法はありますか?

私はこの配列を持っています:

declare -A astr

ここに要素を追加します。

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

ただし、後でインデックスID(elemAとelemB)が何であるかを知り、それらを一覧表示する必要があります。

echo "${astr[@]}" #this only get me the values...

答え1

次のように、連想配列の「キー」リストを取得できます。

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

次のように「キー」を繰り返すことができます。

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

引用する

関連情報