bash script2023. 8. 23. 13:56

 

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

통상적인 배열(array)에 대한 내용은 이전 게시물을 참고하자. 여기로

 

리눅스 bash 스크립트에서 연관 배열(associative array)을 사용하는 방법이다. 연관 배열은 인덱스를 수자로 사용하지 않고 문자열을 사용할 수 있다. 변수를 연관 배열로 사용하려면 해당 변수가 연관 배열임을 미리 선언해 주어야 한다. declare 명령으로 선언하면서 -A 옵션으로 연관 배열임을 지정해야 한다.

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

이제 인덱스를 문자열로 사용할 수 있다.  아래의 예시를 보자.

# 배열 값 할당
arr_test[abc]=0
arr_test[def]=1

# 배열에 저장된 내용 출력
echo ${arr_test[abc]}
0
echo ${arr_test[def]}
1

key-value 형태의 자료를 처리하고 싶을 경우 매우 요긴하게 활용할 수 있다. 인덱스가 문자열임을 이용해서 다차원 배열(multi-dimensional array)처럼 사용할 수도 있겠다. 아래의 예시를 보자. 인덱스를 2차원 배열처럼 사용할 수 있도록 설정한 경우이다.

declare -A x

x[0,0]=1
x[0,1]=2
x[1,0]=3
x[1,1]=4

echo ${x[0,0]}
1
echo ${x[1,0]}
3

변수를 인덱스로 지정할 경우에는 아래와 같이 하면 되겠다.

idx="0,0"
x[$idx]=10

echo "${x[0,0]}
10
echo "${x[$idx]}
10

 

728x90
Posted by 반달가면