쉘 배열 및 연관 배열에 대한 자세한 설명 및 예제 코드

高洛峰
풀어 주다: 2023-03-05 15:02:01
원래의
1062명이 탐색했습니다.

쉘 배열과 연관 배열

1. 배열

1.1. 배열 정의

괄호 쌍은 배열을 나타내며, 배열 요소는 공백 기호로 구분됩니다.

xiaosi@Qunar:~$ a=(1 2 3)
xiaosi@Qunar:~$ echo $a
1
xiaosi@Qunar:~$ a=("yoona" "lucy" "tom")
xiaosi@Qunar:~$ echo $a
yoona
로그인 후 복사

1.2. 배열 길이, 요소, 할당 및 삭제

길이: 배열 길이를 얻으려면 ${#array name[@or*]}를 사용하세요

xiaosi@Qunar:~$ echo ${#a[@]}
3
xiaosi@Qunar:~$ echo ${#a[*]}
3
로그인 후 복사

요소 가져오기: 배열 요소를 가져오려면 ${array name[subscript]}를 사용하고(아래 첨자는 0부터 시작함), 아래 첨자는 * 또는 @로 전체 배열 내용을 가져옵니다

xiaosi@Qunar:~$ array=("yoona" "lucy" "tom")
xiaosi@Qunar:~$ echo ${array[0]}
yoona
xiaosi@Qunar:~$ echo ${array[1]}
lucy
xiaosi@Qunar:~$ echo ${array[*]}
yoona lucy tom
xiaosi@Qunar:~$ echo ${array[@]}
yoona lucy tom
로그인 후 복사

할당: 배열 이름 [subscript]을 통해 참조 할당이 가능합니다. 아래 첨자가 없으면 새 배열 요소가 자동으로 추가됩니다.

xiaosi@Qunar:~$ array=("yoona" "lucy" "tom")
xiaosi@Qunar:~$ echo ${array[2]}
tom
xiaosi@Qunar:~$ array[2]=lily
xiaosi@Qunar:~$ echo ${array[2]}
lily
로그인 후 복사

삭제: unset Array [subscript]를 통해 해당 요소를 지울 수 있습니다. 첨자가 ​​없으면 모든 데이터가 지워집니다.

xiaosi@Qunar:~$ array=("yoona" "lucy" "tom")
xiaosi@Qunar:~$ unset array[1]
xiaosi@Qunar:~$ echo ${array[*]}
yoona tom
xiaosi@Qunar:~$ unset array
xiaosi@Qunar:~$ echo ${array[*]}
xiaosi@Qunar:~$
로그인 후 복사

1.3 특정 범위의 요소를 가져옵니다.

${배열 이름 [@ 또는 *]: 시작 위치: 길이}를 통해 직접 배열의 지정된 범위에 있는 요소를 가져오고 공백으로 구분된 문자열을 반환합니다.

xiaosi@Qunar:~$ array=(yoona lucy tom)
xiaosi@Qunar:~$ echo ${array[*]}
yoona lucy tom
xiaosi@Qunar:~$ echo ${array[*]:1:2}
lucy tom
xiaosi@Qunar:~$ echo ${array[@]:0:1}
yoona
로그인 후 복사

1.4. 바꾸기

${배열 이름 [@ 또는 *]/검색 문자/교체 문자} 이 작업은 원래 배열 내용을 변경하지 않습니다. 수정해야 하는 경우 위의 예를 볼 수 있습니다

xiaosi@Qunar:~$ array=(yoona lucy tom)
xiaosi@Qunar:~$ echo ${array[@]/lucy/lily}
yoona lily tom
xiaosi@Qunar:~$ echo ${array[@]}
yoona lucy tom
로그인 후 복사

2. 연관 배열

Bash는 문자열을 배열 인덱스로 사용할 수 있는 연관 배열을 지원합니다.

2.1 연관 배열 정의

먼저 선언문을 사용하여 변수를 연관 배열로 선언해야 합니다.

xiaosi@Qunar:~$ declare -A assArray
로그인 후 복사

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

(1) 삽입된 인덱스 값 목록 방식 사용

xiaosi@Qunar:~$ assArray=([lucy]=beijing [yoona]=shanghai)
xiaosi@Qunar:~$ echo ${assArray[lucy]}
beijing
로그인 후 복사

(2) 할당에 독립적인 인덱스 값 사용

xiaosi@Qunar:~$ assArray[lily]=shandong
xiaosi@Qunar:~$ assArray[sunny]=xian
xiaosi@Qunar:~$ echo ${assArray[sunny]}
xian
xiaosi@Qunar:~$ echo ${assArray[lily]}
shandong
로그인 후 복사

2.2 목록 배열 인덱스

각 배열에는 검색을 위한 인덱스가 있습니다. ${!array name[@or*]}을 사용하여 배열의 인덱스 목록을 가져옵니다

xiaosi@Qunar:~$ echo ${!assArray[*]}
lily yoona sunny lucy
xiaosi@Qunar:~$ echo ${!assArray[@]}
lily yoona sunny lucy
로그인 후 복사

2.3 모든 키-값 쌍 가져오기

#! /bin/bash
declare -A cityArray
cityArray=([yoona]=beijing [lucy]=shanghai [lily]=shandong)
for key in ${!cityArray[*]}
do
 echo "${key} come from ${cityArray[$key]}"
done
로그인 후 복사

결과:

xiaosi@Qunar:~/company/sh$ bash array.sh
lily come from shandong
yoona come from beijing
lucy come from shanghai
로그인 후 복사

읽어 주셔서 감사합니다. 모두에게 도움이 되기를 바랍니다. 이 사이트를 지원해 주신 모든 분들께 감사드립니다!

쉘 배열, 연관 배열에 대한 자세한 설명과 예제 코드는 PHP 중국어 홈페이지를 참고해주세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!