Bash 연관 배열

Sheeraz Gul 2023년6월20일
  1. Bash 연관 배열
  2. 연관 배열에 액세스
  3. 연관 배열에 새 멤버 추가
  4. 연관 배열에서 멤버 삭제
Bash 연관 배열

이 튜토리얼은 Bash에서 연관 배열을 만드는 방법을 보여줍니다.

Bash 연관 배열

배열은 Bash에서 데이터를 저장하는 데 매우 유용할 수 있으며 문자열 인덱스가 있는 배열도 Bash에서 만들 수 있으며 이를 연관 배열이라고 합니다. 연관 배열은 Bash 4에 추가되었으며 그 이전 버전에서는 선언할 수 없습니다.

먼저 Bash 버전을 확인하세요. 버전이 4 미만이면 연관 배열을 선언할 수 없기 때문입니다. declare 명령을 사용하여 연관 배열을 선언합니다.

연관 배열을 선언하려면 아래 단계를 따르십시오.

  • 먼저 Bash 버전을 확인하고 다음 명령을 실행합니다.
    bash --version
    

    위의 명령은 Bash의 버전을 확인합니다. 출력은 다음과 같습니다.

    GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)
    Copyright (C) 2019 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    
  • 이제 declare 명령을 사용하여 연관 배열을 선언합니다.
    declare -A DemoArray
    DemoArray[One]=Delftstack1
    DemoArray[Two]=Delftstack2
    DemoArray[Three]=Delftstack3
    DemoArray[Four]=Delftstack4
    DemoArray[Five]=Delftstack5
    DemoArray[Six]=Delftstack6
    

    위의 명령은 먼저 연관 배열을 선언한 다음 인덱스와 값을 할당합니다.

  • 또한 한 줄에 연관 배열을 선언할 수 있는 또 다른 명령이 있습니다.
    declare -A DemoArray1=( [One]=Delftstack1 [Two]=Delftstack2 [Three]=Delftstack3 )
    

    위의 명령은 한 줄에 연관 배열을 만듭니다.

연관 배열에 액세스

연관 배열의 요소에 개별적으로 또는 배열을 사용하여 액세스할 수 있습니다. 직접 에코하거나 배열을 루프에 넣을 수 있습니다.

개별적으로 값에 액세스하려면 다음 명령을 참조하십시오.

echo ${DemoArray[One]}
echo ${DemoArray[Two]}
echo ${DemoArray[Three]}
echo ${DemoArray[Four]}
echo ${DemoArray[Five]}
echo ${DemoArray[Six]}

위의 명령은 주어진 인덱스에서 연관 배열의 값을 인쇄합니다. 출력을 참조하십시오.

Delftstack1
Delftstack2
Delftstack3
Delftstack4
Delftstack5
Delftstack6

루프를 사용하여 연관 배열의 모든 값에 액세스할 수도 있습니다. 다음 명령을 참조하십시오.

for ArrayKey in "${!DemoArray[@]}"; do echo $ArrayKey; done
echo "${!DemoArray[@]}"

여기 ! 연관 배열의 키를 읽는 데 사용할 수 있습니다. 첫 번째 명령은 연관 배열의 키를 하나씩 인쇄하고 두 번째 명령은 모든 키를 한 번에 인쇄합니다.

출력을 참조하십시오.

Four
Six
One
Five
Two

Three Four Six One Five Two

마찬가지로 값을 인쇄하려면 !를 삭제합니다. 위 명령의 연산자:

for ArrayValue in "${DemoArray[@]}"; do echo $ArrayValue; done
echo "${DemoArray[@]}"

이제 이 명령은 주어진 연관 배열의 모든 값을 인쇄합니다. 출력을 참조하십시오.

Delftstack4
Delftstack6
Delftstack1
Delftstack5
Delftstack2

Delftstack3 Delftstack4 Delftstack6 Delftstack1 Delftstack5 Delftstack2

마지막으로 for 루프를 사용하여 값이 있는 키를 인쇄할 수 있습니다. 다음 명령을 참조하십시오.

for ArrayKey in "${!DemoArray[@]}"; do echo "$ArrayKey => ${DemoArray[$ArrayKey]}"; done

위의 명령은 주어진 배열의 모든 키-값 쌍을 인쇄합니다. 출력을 참조하십시오.

Three => Delftstack3
Four => Delftstack4
Six => Delftstack6
One => Delftstack1
Five => Delftstack5
Two => Delftstack2

연관 배열에 새 멤버 추가

연관 배열에 새 요소를 추가하는 것은 매우 쉬운 작업입니다. 배열과 새로운 키-값 쌍 사이에 += 연결 연산자를 사용합니다.

키-값 쌍을 만든 다음 연관 배열에 할당합니다. 다음 명령을 참조하십시오.

echo "${DemoArray[@]}"
DemoArray+=([Seven]=Delftstack7)
echo "${DemoArray[@]}"

위의 명령은 원래 배열을 인쇄하고 새 구성원을 추가한 다음 수정된 배열을 인쇄합니다. 출력 보기

Delftstack3 Delftstack4 Delftstack6 Delftstack1 Delftstack5 Delftstack2

Delftstack3 Delftstack4 Delftstack7 Delftstack6 Delftstack1 Delftstack5 Delftstack2

연관 배열에서 멤버 삭제

연관 배열의 구성원을 삭제하는 것도 쉬운 작업입니다. 어레이 멤버에서 unset 명령을 사용하면 어레이에서 삭제됩니다.

명령을 참조하십시오.

echo "${DemoArray[@]}"
unset DemoArray[Seven]
echo "${DemoArray[@]}"

위의 명령은 먼저 원래 배열을 표시한 다음 배열의 멤버 [Seven]을 삭제한 다음 수정된 배열을 다시 표시합니다. 출력을 참조하십시오.

Delftstack3 Delftstack4 Delftstack7 Delftstack6 Delftstack1 Delftstack5 Delftstack2

Delftstack3 Delftstack4 Delftstack6 Delftstack1 Delftstack5 Delftstack2
작가: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

관련 문장 - Bash Array