>  기사  >  운영 및 유지보수  >  Linux 배열 및 연관 배열에 대한 자세한 설명

Linux 배열 및 연관 배열에 대한 자세한 설명

小云云
小云云원래의
2018-03-31 13:48:032598검색

배열은 셸 스크립트에서 매우 중요한 부분으로, 인덱스를 사용하여 여러 개의 독립적인 데이터를 컬렉션으로 저장합니다. 일반 배열은 정수만 배열 인덱스로 사용할 수 있습니다. Bash는 문자열을 배열 인덱스로 사용할 수 있는 연관 배열도 지원합니다. 대부분의 경우 문자열 인덱싱은 이해하기 쉽고 연관 배열이 유용합니다. 여기서는 일반 배열과 연관 배열의 사용법을 살펴보겠습니다.

(1) 배열을 정의하는 방법에는 여러 가지가 있습니다. 단일 행의 값 열을 사용하여 배열을 정의할 수 있습니다:
array_var=(1 2 3 4 5 6)
#이 값은 0부터 시작하여 연속된 위치에 저장됩니다. 또한 배열은 그룹 "index-value"로 정의할 수도 있습니다:
array_var[0]="test1"
array_var[1]="test2"
array_var[2]="test3"
array_var[3]="test4"
array_var[4]=" test5"
array_var[5]="test6"

(2) 특정 인덱스에 있는 배열 요소의 내용을 인쇄합니다.

[rhx@localhost Test]$ vim arr.sh

[rhx@localhost Test]$ source arr.sh
[rhx@localhost Test]$ echo ${array[0]}
//输出:1
[rhx@localhost Test]$ echo ${array[*]}
//输出数组元素:1 2 3 4 5 6 7 8 9 10
[rhx@localhost Test]$ echo ${array[@]}
//输出数组元素1 2 3 4 5 6 7 8 9 10
[rhx@localhost Test]$ echo ${#array[@]}
//输出数组长度:10
[rhx@localhost Test]$ echo ${#array[*]}
//输出数组长度:10

연관 배열은 Bash부터 도입되었습니다. 버전 4.0. 해싱 기술의 도움으로 연관 배열은 많은 문제를 해결하는 강력한 도구가 됩니다. 다음에 알아보겠습니다.

1. 연관 배열 정의

연관 배열에서는 모든 텍스트를 배열 인덱스로 사용할 수 있습니다. 먼저 선언문을 사용하여 변수 이름을 연관 배열로 선언해야 합니다.

[rhx@localhost Test]$declare -A ass_array

선언 후 연관 배열에 요소를 추가하는 방법에는 두 가지가 있습니다.

 "인덱스 값" 목록을 제공하려면 내장된 "인덱스 값" 목록 방법을 사용하세요:
$ ass_array=([index1]=val1 [index2]=val2)
 독립적인 "인덱스 값" 할당 사용:
$ ass_array[index1]=val1
$ ass_array'index2]=val2

예를 들어, 연관 배열을 사용하여 과일 가격을 설정하는 방법을 상상해 보세요.

[rhx@localhost Test]$ declare -A fruit_value
[rhx@localhost Test]$ fruit_value=([apple]="100"[orange]="150")
[rhx@localhost Test]$ echo ${fruit_value[apple]}

2 배열 인덱스

각 배열 요소를 나열합니다. 검색할 수 있는 색인이 있습니다. 일반 배열과 연관 배열은 인덱스 유형이 다릅니다. 다음 방법을 사용하여 배열의 인덱스 목록을 가져올 수 있습니다:
$ echo ${!array_var[*]}
다음 방법도 사용할 수 있습니다.
$ echo ${!array_var[@]
앞서 언급한fruit_value 배열을 다음과 같이 사용합니다. 예를 들어, 다음 명령을 실행합니다:
$ echo ${!fruits_value[*]}
orange apple
일반 배열의 경우 이 방법도 가능합니다.

위 내용은 Linux 배열 및 연관 배열에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.