본문 바로가기
운영체제/리눅스

[Linux] Bash Shell 배열 AtoZ - 추가 제거 길이 수정

by Cloud_Park 2021. 4. 22.

Bash

 

기본
배열 (Array) 기본 띄어쓰기로 구분합니다.

 

1. 선언 
//숫자

PBS=(1 2 3 4 5)


//글자(공백이 있을 경우 작은 따움표, 큰 따움표)

PBS=("park" 'soo')



2. 배열의 값 출력 // {} 중괄호가 중요함

${PBS[1]}




3. 배열의 전체 값 출력

${PBS[*]}
${PBS[@]}


// 특이점  배시는 공백이 하나로 합쳐지는 성질이 있음 
// echo ${PBS[@]} 와 echo "${PBS[@]}" 의 차이가 있음 후자를 사용하는 것을 추천

4. 값 변경

PBS=(1 2 3 4 5)
PBS[0]=100



5. 값 추가

PBS=(ttt)
PBS[1]=mmm
PBS[2]=aaa
//텍스트의 공백이 있다면 큰,작은 따움표를 사용
PBS[3]="TT MM"



6. 값 제거 //0번째 제거 추가적으로  빈값 ""을 넣으면 제거가 되지 않고 ""로 덮어쓰기가 됩니다. 값은 보이지 않으나 인덱스는 존재

unset PBS[0]



7. 음수 인덱스
음수 인덱스는 젤 끝을 뜻합니다.

PBS=(1 2 3 4 5 6 7)
결과값:  PBS[-1]=7
   PBS[-2]=6


   
8. 배열을 그냥 호출 시 첫 번째 값 출력

PBS=[1 2 3 4 5]
echo PBS

  
결과값 : 1
 



특이 케이스


1.배열선언이 필요없다.  타 언어에 비해 배열선언이 필요없다.

PBS[0]=1
PBS[1]=2


//하지만 명시적 선언이면 성능이 향상된다고합니다.
1.1. 명시적 선언

declare -a PBS


declare -a PBS=(1 2 3 4)


2. 순서대로 값이 들어오지 않아도 됨

PBS=(1 2 3 4 5)
PBS[123]=124 


3. 특이선언 케이스 배열의 번호를 지정하여 저장
PBS=([10]=10 [20]=20 [30]=30)

3-1.   10               2    3     4           50

PBS=([10]=Welcome [2]=Hello Global World [50]=Bye)

   //[2]에 띄어쓰기로 되어 있어 다음 텍스트는 배열로 들어감

4. 배열의 끝에 값추가 *하나의 값을 추가하더라도 ()괄호를 붙여야함.

PBS=(123)
PBS+=(456)
PBS+=(789)




5. 배열 합치기

PB=(123 234 345)
BS=(456 567 678)
PBS=(${PB[@]} ${BS[@]})



6. 배열 크기 얻기 // 1~배열 마지막을 구하는 게 아닌  배열의 갯수

${#PSB[@]} 


6.1. 배열 원소 택스트 길이 확인 //띄워쓰기도 숫자에 포함

${#PBS[1]}




7. 원소의  목록 인덱스 얻기 // 몇 번째에  값들이 존재하는가?

${!PBS[@]}



8. 배열순회 //예시

for V in "${PBS[@]}" 
do
    echo $V
done

참고: www.bangseongbeom.com/bash-arrays.html

'운영체제 > 리눅스' 카테고리의 다른 글

(docker) 레지스트리 삭제  (0) 2021.05.20
[리눅스]서비스 만들기  (0) 2021.05.18
[리눅스] 리눅스 대용량 파일 이동 팁!  (5) 2021.02.18
[리눅스]sed 명령어  (2) 2020.12.09
[리눅스]jq명령어  (0) 2020.12.09