![Bash 연관 배열 변수에 모든 "인덱스 ID"(키)를 나열하는 방법이 있습니까?](https://linux55.com/image/50464/Bash%20%EC%97%B0%EA%B4%80%20%EB%B0%B0%EC%97%B4%20%EB%B3%80%EC%88%98%EC%97%90%20%EB%AA%A8%EB%93%A0%20%22%EC%9D%B8%EB%8D%B1%EC%8A%A4%20ID%22(%ED%82%A4)%EB%A5%BC%20%EB%82%98%EC%97%B4%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
나는 이 배열을 가지고 있습니다 :
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