Shell 스 크 립 트 배열 작업 소결

4224 단어
Linux Shell 은 프로 그래 밍 에 있어 서 Windows 일괄 처리 보다 훨씬 강하 다. 순환, 연산 이 든.
bash 는 1 차원 배열 (다 차원 배열 은 지원 되 지 않 음) 을 지원 하고 배열 의 크기 를 제한 하지 않 습 니 다.C 언어 와 유사 하 며, 배열 요소 의 아래 표 시 는 0 부터 번 호 를 매 긴 다.배열 의 요 소 를 가 져 오 려 면 아래 표 시 를 이용 해 야 합 니 다. 아래 표 시 는 정수 나 산술 표현 식 일 수 있 습 니 다. 그 값 은 0 보다 크 거나 같 아야 합 니 다.
정의 배열
셸 에 서 는 괄호 로 배열 을 표시 하고 배열 요 소 는 '빈 칸' 기호 로 나 뉜 다.배열 의 일반적인 형식 을 다음 과 같이 정의 합 니 다.

      =( 1  2 ...  n) 
 

예 를 들 면:
 
  
array_name=(value0 value1 value2 value3)

혹은
 
  
array_name=(
value0
value1
value2
value3
)

배열 의 각 분량 을 따로 정의 할 수 있 습 니 다.
 
  
array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen

연속 적 인 하 표를 사용 하지 않 아 도 되 고 하 표 의 범 위 는 제한 이 없다.
읽 기 배열
배열 요소 값 을 읽 는 일반적인 형식 은:
 
  
${ [ ]}

예 를 들 면:
 
  
valuen=${array_name[n]}

@ 기 호 를 사용 하면 배열 의 모든 요 소 를 가 져 올 수 있 습 니 다. 예 를 들 어:
 
  
echo ${array_name[@]}

배열 의 길이 가 져 오기
배열 길 이 를 가 져 오 는 방법 은 문자열 길 이 를 가 져 오 는 방법 과 같 습 니 다. 예 를 들 어:
 
  
#
length=${#array_name[@]}
#
length=${#array_name[*]}
#
lengthn=${#array_name[n]}

첨부: 셸 배열 소결
언제 썼 는 지 모 르 겠 지만 문 서 를 정리 하 다가 고고학 적 으로 발견 되 어 놀 고 있 는 사람들 에 게 웃 으 며 지나 가자.만약 본 논문 의 잘못 이 당신 에 게 모든 정신 적 손실 을 가 져 다 준다 면 보험 회 사 를 찾 아 동반 하 십시오!물론 알려 주 셔 도 됩 니 다.
배열 은 특수 한 데이터 구조 로 서 어떠한 프로 그래 밍 언어 에서 도 자 리 를 잡 을 수 있 습 니 다. 물론 bash 셸 도 예외 가 아 닙 니 다.본 고 는 셸 배열 에 대해 작은 총 결 을 한다.여기 서 1 차원 배열 의 상황 만 토론 하고 다 차원 배열 (사실은 1 차원 배열 의 방법 으로 모 의 해 야 한다) 에 대해 서 는 언급 하지 않 습 니 다.여기 에는 배열 의 복사, 계산, 삭제, 교체 가 포함 되 어 있다.
배열 의 설명:

   array[key]=value # array[0]=one,array[1]=two 
   
  

declare -a array # array

array=( value1 value2 value3 ... )

array=( [1]=one [2]=two [3]=three ... )

array="one two three" # echo ${array[0|@|*]}, array ,


배열 접근:

   ${array[key]} # ${array[1]} 
 

배열 삭제

   unset array[1] #            
   
  

unset array #


배열 의 길 이 를 계산 합 니 다:

   ${#array} 
   
  

${#array[0]} # 。 ${#array[*]} 、${#array[@]}。 #{array:0}


배열 추출
끝부분 부터 추출:

   array=( [0]=one [1]=two [2]=three [3]=four ) 
  
${array[@]:1} # two three four, , ${array[@]:0}
${array[@]:0:2} # one two
${array[@]:1:2} # two three

하위 문자열 삭제
 
  
[root@localhost dev]# echo ${array[@]:0}
one two three four

[root@localhost dev]# echo ${array[@]#t*e} # :"t*e", "thre"
one two e four

[root@localhost dev]# echo ${array[@]##t*e} # , "three"

[root@localhost dev]# array=( [0]=one [1]=two [2]=three [3]=four )

[root@localhost dev]# echo ${array[@] %o} #
one tw three four

[root@localhost dev]# echo ${array[@] %%o} #
one tw three four


하위 문자열 교체

   [root@localhost dev]# array=( [0]=one [1]=two [2]=three [3]=four ) 
 

첫 번 째 일치 하 는 것 은 삭 제 됩 니 다.

   [root@localhost dev]# echo ${array[@] /o/m} 
  
mne twm three fmur

일치 하 는 모든 것 이 삭 제 됩 니 다.

   [root@localhost dev]# echo ${array[@] //o/m} 
  
mne twm three fmur

대체 문자열 이 지정 되 지 않 으 면 일치 하 는 하위 문자열 을 삭제 합 니 다.

   [root@localhost dev]# echo ${array[@] //o/} 
  
ne tw three fur

문자열 앞 단자 문자열 바 꾸 기

   [root@localhost dev]# echo ${array[@] /#o/k} 
  
kne two three four

대체 문자열 후 단자 문자열

   [root@localhost dev]# echo ${array[@] /%o/k} 
  
one twk three four

좋은 웹페이지 즐겨찾기