기계적 인조 인간

배쉬 배열

장리ì�¸(Zhangliyin)_TimelessPart1_뮤ì§�비ë""오(MusicVideo)

장리ì�¸(Zhangliyin)_TimelessPart1_뮤ì§�비ë""오(MusicVideo)

차례:

Anonim

배열은 가장 많이 사용되는 기본 데이터 구조 중 하나입니다. 배열은 그 안에 여러 변수를 저장할 수있는 변수라고 생각할 수 있습니다.

Bash 배열을 다루고 Bash 스크립트에서 배열을 사용하는 방법에 대해 설명합니다.

배쉬 배열

Bash는 1 차원의 숫자 인덱스 및 연관 배열 유형을 지원합니다. 숫자 형 배열은 정수를 사용하여 참조되며 연관은 문자열을 사용하여 참조됩니다.

숫자 인덱스 배열은 음의 인덱스를 사용하여 끝에서 액세스 할 수 있으며 -1 의 인덱스는 마지막 요소를 참조합니다. 지수는 연속적 일 필요는 없다.

대부분의 프로그래밍 언어와 달리 Bash 배열 요소는 동일한 데이터 유형일 필요는 없습니다. 문자열과 숫자가 모두 포함 된 배열을 만들 수 있습니다.

Bash는 다차원 배열을 지원하지 않으며 배열이기도 한 배열 요소를 가질 수 없습니다.

배열에 저장할 수있는 최대 요소 수에는 제한이 없습니다.

배쉬 배열 만들기

Bash의 배열은 다른 방식으로 초기화 될 수 있습니다.

숫자 인덱스 배열 만들기

배쉬 변수는 타입이 지정되지 않으며, 변수를 선언하지 않고 인덱스 배열로 사용할 수 있습니다.

명시 적으로 배열을 선언하려면 다음과 같이 선언 내장을 사용하십시오.

declare -a array_name

인덱스 배열을 만드는 한 가지 방법은 다음 형식을 사용하는 것입니다.

array_name=value_1 array_name=value_2 array_name=value_n

index_* 는 양의 정수입니다.

숫자 형 배열을 만드는 또 다른 방법은 빈 공간으로 구분 된 괄호 안의 요소 목록을 지정하는 것입니다.

array_name=(element_1 element_2 element_N)

위의 형식을 사용하여 배열을 만들면 인덱싱은 0에서 시작합니다. 즉 첫 번째 요소의 인덱스는 0 입니다.

연관 배열 만들기

숫자 인덱스와 달리 연관 배열을 사용하려면 먼저 선언해야합니다.

연관 배열을 선언하려면 선언 내장을 -A (대문자) 옵션과 함께 사용하십시오.

declare -A array_name

다음 형식을 사용하여 연관 배열을 작성할 수 있습니다.

declare -A array_name array_name=value_foo array_name=value_bar array_name=value_xyz

여기서 index_* 는 임의의 문자열이 될 수 있습니다.

아래 양식을 사용하여 연관 배열을 만들 수도 있습니다.

declare -A array_name array_name=(=value_foo =value_bar =value_xyz)

배열 연산

배쉬 배열 구문은 처음에는 조금 이상하게 보일지 모르지만이 기사를 읽으면 더 의미가 있습니다.

참조 요소

단일 요소를 참조하려면 요소 색인을 알아야합니다.

다음 구문을 사용하여 모든 요소를 ​​참조 할 수 있습니다.

${array_name} 배열 요소에 액세스하는 구문은 대부분의 프로그래밍 언어의 구문과 유사합니다. 쉘의 파일 이름 확장 연산자를 피하려면 중괄호 ${} 가 필요합니다.

인덱스가 1 요소를 인쇄 해 봅시다:

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print element echo ${my_array}

Helium

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print all elements echo "${my_array}"

Hydrogen Helium Lithium Beryllium

@ * 의 유일한 차이점은 ${my_array} 형식이 큰 따옴표로 묶인 경우입니다. 이 경우 * 는 배열 요소가 공백으로 구분되는 단일 단어로 확장됩니다. @ 각 배열 요소를 별도의 단어로 확장합니다. 이것은 배열 요소를 통해 문맹 화하기 위해 양식을 사용할 때 특히 중요합니다.

배열의 키를 인쇄하려면 ! 배열 이름 앞에 연산자:

${!array_name}

예를 들면 다음과 같습니다.

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print all elements echo "${!my_array}"

0 1 2 3

배열 길이

배열의 길이를 얻으려면 다음 형식을 사용하십시오.

${#array_name} 구문 이름은 배열 이름 앞에 # 문자를 추가하여 모든 요소를 ​​참조 할 때와 동일합니다.

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## array Length echo ${#my_array}

4

배열을 반복

배열의 각 항목을 반복하는 가장 일반적인 방법은 for 루프를 사용하는 것입니다.

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${my_array}" do echo "$i" done

위의 코드는 배열을 반복하고 각 요소를 새 줄로 인쇄합니다.

Hydrogen Helium Lithium Beryllium

다음은 모든 키와 값을 인쇄하는 방법의 예입니다.

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${!my_array}" do echo "$i" "${my_array}" done

0 Hydrogen 1 Helium 2 Lithium 3 Beryllium

배열을 반복하는 또 다른 방법은 배열의 길이를 얻고 C style 루프를 사용하는 것 C style .

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") # Length of the array length=${#my_array} # Array Loop for ((i=0; i < ${length}; i++)) do echo $i ${my_array} done

0 Hydrogen 1 Helium 2 Lithium 3 Beryllium

새로운 요소 추가

bash 배열에 새 요소를 추가하고 색인을 지정하려면 다음 양식을 사용하십시오.

my_array="New Element"

예를 들면 다음과 같습니다.

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new element my_array="Aluminum" ## print all elements echo "${my_array}"

Hydrogen Helium Lithium Beryllium Aluminum

인덱스를 지정하지 않고 배열에 새 요소를 추가하는 또 다른 방법은 += 연산자를 사용하는 것입니다. 하나 이상의 요소를 추가 할 수 있습니다.

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new elements my_array+=(Cobalt Nickel) ## print all elements echo "${my_array}"

Hydrogen Helium Lithium Beryllium Cobalt Nickel

요소 삭제

단일 요소를 삭제하려면 요소 색인을 알아야합니다. unset 명령을 사용하여 요소를 제거 할 수 있습니다.

unset my_array

예를 보자.

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## remove element unset my_array ## print all elements echo "${my_array}"

Hydrogen Helium Beryllium

결론

숫자 인덱스 및 연관 배열을 만드는 방법을 설명했습니다. 또한 배열을 반복하고 배열 길이를 계산하며 요소를 추가 및 제거하는 방법도 보여주었습니다.

bash 터미널