개발 환경 및 프로젝트 관리/Linux 개념

Bash — Indexed Array 기본 정리

Data Jun 2025. 10. 9. 15:10

Bash에서는 배열(Array)을 사용하여 여러 데이터를 한 변수에 저장할 수 있습니다.
그중 Indexed Array(인덱스 배열)숫자 인덱스로 요소를 관리하는 배열입니다.
파이썬의 리스트와 비슷한 개념으로 이해하면 쉽습니다.

 

 

배열 선언 및 초기화

# 배열 선언
declare -a array_variable

# 배열 선언과 동시에 초기화
array_variable=(abc def xyz)

 

  • declare -a 명령으로 배열임을 명시할 수 있습니다.
  • 괄호 () 안에 요소들을 공백으로 구분하여 나열하면 됩니다.

 

배열 값 추가

array_variable+=(aaa)
  • +=를 사용하면 기존 배열에 새 값을 추가(append) 할 수 있습니다.
  • 예: ("abc" "def" "xyz" "aaa")\

 

배열 요소 삭제

unset array_variable[1]

#예시
array=(a b c d)
unset array[1]
echo ${array[@]}   # 출력: a c d
echo ${!array[@]}  # 출력: 0 2 3   ← 인덱스는 그대로 유지됨
  • 인덱스 번호를 지정해 해당 요소를 삭제합니다.
  • 인덱스는 0부터 시작합니다.
  • 주의: unset으로 요소를 삭제해도 인덱스 번호는 재정렬되지 않습니다.
    즉, array_variable[1]이 삭제되면 [0], [2], [3]은 그대로 남습니다.

 

배열 값 확인

# 전체 element 출력
echo ${array_variable[@]}

# 특정 element 출력
echo ${array_variable[0]}   # 첫 번째 요소

 

 

배열 관련 내장 기능

명령어 설명
${!array_variable[@]} key(인덱스) 전체 목록
${array_variable[@]} 모든 요소 출력
${array_variable[n]} n번째 요소 출력
${#array_variable[@]} 배열의 전체 길이 (요소 개수)
${array_variable[@]:s:n} s번째부터 n개의 요소 슬라이싱

예시

array=(apple banana cherry)
echo ${array[1]}        # banana
echo ${array[@]}        # apple banana cherry
echo ${#array[@]}       # 3
echo ${array[@]:1:2}    # banana cherry

 

 

정리하면

 

Bash의 Indexed Array는 간단한 데이터 리스트를 다룰 때 매우 유용합니다.
반복문(for)과 함께 사용하면, 파일 이름 목록, 서버 리스트, 경로 등 다양한 데이터를 손쉽게 처리할 수 있습니다 

 

⚠️ 참고: unset 명령으로 요소를 삭제해도 인덱스는 유지되므로, 반복문에서 순서가 중요한 경우 주의해야 합니다.