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 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