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

인용하다

관련 정보