bash script2023. 9. 15. 09:22

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/620044

우선 리눅스 bash 스크립트에서 연관 배열(associative array) 사용에 대한 기본적인 내용도 이전 게시물을 참고하자. 여기로

배열을 정의해서 사용할 때 배열의 인덱스(index) 또는 키(key)를 확인해야 할 경우가 있다. 일반적인 배열은 인덱스를 수자로 사용하므로 굳이 인덱스를 별도로 확인할 일이 별로 없겠지만, 문자열을 인덱스/키로 사용하는 연관 배열의 경우에는 좀 다를 수 있다.

아래의 예시를 보자.

# 변수 arr_x를 연관 배열로 선언
declare -A arr_x

# 값 할당
arr_x[abc]=10
arr_x[def]=5
arr_x[xyz]=0

# 인덱스 abc에 저장된 내용 출력
echo "${arr_x[abc]}"
10

배열의 인덱스를 출력하려면 변수 앞에 느낌표(!)를 붙이면 된다. (연관 배열뿐만 아니라 일반 배열에서도 동일하게 적용된다)

# arr_x 배열의 인덱스/키 출력
echo "${!arr_x[*]}"
abc def xyz

연관 배열에 저장된 값들을 for 반복문을 통해 차례로 불러서 뭔가 작업을 해야 할 경우, 아래와 같이 해 볼 수 있겠다.

for arr_key in `echo "${!arr_x[*]}"`
do
  echo "key: $arr_key"
  # 배열 값에 대한 작업
  ...
done

728x90
Posted by 반달가면