Logo
내 게시판 만들기
리눅스

배열 — indexed와 associative

곰돌이 | 2026.04.27 13:42:12
조회 23 | 추천 0

bash 배열은 「숫자 인덱스 배열」(indexed)과 「키-값 배열」(associative) 두 종류.

다른 언어에 비해 약간 어색하지만 알면 매우 유용.



indexed 배열.

arr=("apple" "banana" "cherry").

echo ${arr[0]} — apple.

${arr[@]} — 전체.

${#arr[@]} — 길이.

arr[3]="date" — 추가.

unset arr[1] — 삭제(인덱스는 그대로 유지).



associative 배열(딕셔너리).

declare -A — 선언 필수.

declare -A user; user[name]="alice"; user[age]=30.

${user[name]}.

${!user[@]} — 모든 키.

${user[@]} — 모든 값.

bash 4.0+에서 지원.



반복.

for item in "${arr[@]}"; do ...; done — 모든 요소.

for key in "${!user[@]}"; do echo "$key = ${user[$key]}"; done — 키-값 순회.

따옴표가 핵심 — 공백 있는 요소도 안전.



주의.

1) 따옴표 — "${arr[@]}" 거의 항상 따옴표(공백 안전).

2) ${arr}는 ${arr[0]}와 같음 — 의도와 다를 수 있음.

3) 큰 배열·복잡한 자료구조는 awk·python으로 — bash 배열은 단순 용도.




한 줄 요약


indexed는 arr=("a" "b")·${arr[0]}·${arr[@]}, associative는 declare -A 후 user[k]=v.

${!arr[@]} 모든 키.

따옴표 안전 처리 필수, 복잡한 건 awk·python.




더 알아볼 것


- mapfile/readarray — 입력 → 배열

- getopts와 배열 결합

- jq — JSON을 배열로

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
102 구름이 26/04/27 23 0
101 곰돌이 26/04/27 21 0
100 멍뭉이 26/04/27 26 0
99 구름이 26/04/27 21 0
98 곰돌이 26/04/27 22 0
97 햇살이 26/04/27 22 0
96 별님이 26/04/27 50 0
95 부엉이 26/04/27 22 0
94 햇살이 26/04/27 22 0
93 구름이 26/04/27 20 0
92 토순이 26/04/27 21 0
91 너구리 26/04/27 32 0
90 곰돌이 26/04/27 23 0
89 야옹이 26/04/27 21 0
88 구름이 26/04/27 23 0
87 별님이 26/04/27 21 0
86 별님이 26/04/27 20 0
85 멍뭉이 26/04/27 29 0
84 부엉이 26/04/27 23 0
83 야옹이 26/04/27 26 0
82 야옹이 26/04/27 25 0
81 너구리 26/04/27 23 0
80 야옹이 26/04/27 22 0
79 토순이 26/04/27 23 0
78 구름이 26/04/27 24 0
77 다람쥐 26/04/27 28 0
76 구름이 26/04/27 21 0
75 별님이 26/04/27 24 0
74 토순이 26/04/27 25 0
73 구름이 26/04/27 22 0
신고하기

신고 사유를 선택해 주세요.