장리ì�¸(Zhangliyin)_TimelessPart1_뮤ì§�비ë""오(MusicVideo)
차례:
배열은 가장 많이 사용되는 기본 데이터 구조 중 하나입니다. 배열은 그 안에 여러 변수를 저장할 수있는 변수라고 생각할 수 있습니다.
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}"
배열 길이
배열의 길이를 얻으려면 다음 형식을 사용하십시오.
${#array_name}
구문 이름은 배열 이름 앞에
#
문자를 추가하여 모든 요소를 참조 할 때와 동일합니다.
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## array Length echo ${#my_array}
배열을 반복
배열의 각 항목을 반복하는 가장 일반적인 방법은 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}"
결론
숫자 인덱스 및 연관 배열을 만드는 방법을 설명했습니다. 또한 배열을 반복하고 배열 길이를 계산하며 요소를 추가 및 제거하는 방법도 보여주었습니다.
bash 터미널