반달가면 이글루에서 백업 - 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
'bash script' 카테고리의 다른 글
[bash: awk] 항목의 합계를 계산할 때 예외 처리 (0) | 2023.09.15 |
---|---|
리눅스 bash 스크립트에서 텍스트 파일을 읽어서 한 줄씩 배열(array) 원소로 할당하기 - 2 (readarray) (0) | 2023.09.15 |
[bash: sed] 출력 또는 제거할 범위를 문자열 패턴으로 지정하기 (0) | 2023.09.15 |
[bash: awk] 각 항목별 합계 계산 (0) | 2023.09.15 |
[bash: find, xargs, for] find 명령으로 추려낸 여러 파일에 대해 같은 작업을 하기 위한 스크립트 (0) | 2023.09.08 |