반달가면 이글루에서 백업 - 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
'bash script' 카테고리의 다른 글
[bash: ((] 연관 배열(associative array)에 저장된 정수 계산 (0) | 2023.08.29 |
---|---|
[bash: while, if] 복잡한 조건에 따른 개별 작업 이후 공통된 작업이 있는 경우 (0) | 2023.08.29 |
[bash: curl] curl을 이용한 FTP 자동 접속 - 파일명 변경 (0) | 2023.08.23 |
[bash: sed] 16진수값(hex) 대체하기 (0) | 2023.08.23 |
[bash: if, grep] 특정 문자열의 존재유무에 따른 작업 지정하기 (0) | 2023.08.23 |