Shell 스 크 립 트 의 배열

글 목록
  • 1. 배열 의 개념 과 구성
  • 2. 배열 의 응용 장면
  • 3. 배열 정의 방법 과 배열 의 절편, 옮 겨 다 니 기, 교체, 삭제
  • 4. Shell 스 크 립 트 디 버 깅
  • 1. 배열 의 개념 과 구성
    배열 은 같은 유형의 데 이 터 를 저장 하 는 집합 으로 배열 에 여러 개의 값 을 저장 할 수 있 고 순환 문 구 를 결합 하여 자주 사용 할 수 있다.
    예 를 들 면:
         :num=(15 16 17 18 19)
        :num
        ( 1 ):11
        :5
        :  18       3
    

    2. 배열 의 응용 장면
  • 배열 길이 가 져 오기
  • 원소 길이 획득
  • 원소 옮 겨 다 니 기
  • 원소 절편
  • 원소 교체
  • 요소 삭제
  • 3. 배열 정의 방법 과 배열 의 절편, 옮 겨 다 니 기, 교체, 삭제
    Shell 배열 은 괄호 로 요 소 를 '빈 칸' 기호 로 나 누고 문법 형식 은 다음 과 같 습 니 다.
    방법 1:
       =(value0 value1 value2 ...)
    

    예:
    [root@localhost ~]# num=(10 20 30 40 50 60)
    [root@localhost ~]# echo $num
    10
    [root@localhost ~]# echo ${num}
    10
    [root@localhost ~]# echo ${num[*]}
    10 20 30 40 50 60
    [root@localhost ~]# echo ${num[3]}
    40
    

    방법 2:
       =([0]=value [1]=value2 [2]=value ...)
    

    예:
    [root@localhost ~]# num=([0]=15 [1]=16 [2]=17 [3]=18)
    [root@localhost ~]# echo ${num[@]}
    15 16 17 18
    

    방법 3:
       :"value0 value1 value2"
       =($   )
    

    예:
    [root@localhost ~]# list="15 16 17 18 19"
    [root@localhost ~]# num=($list)
    [root@localhost ~]# echo ${num[*]}
    15 16 17 18 19
    

    방법 4:
       [0]="value"
       [1]="value"
       [2]="value"
    

    배열 에 포 함 된 데이터 형식:
  • 수치 유형
  • 문자 형식
  • 예 1: 배열 로 출력 1 - 100
    #!/bin/bash
    #
    for ((i=0;i<=99;i++));do    ##   :   i          ,   0  !
      num[$i]=$[$i+1]
    done
    echo ${num[*]}
    

    예 2: 수요: 임의의 숫자 와 길이 의 배열 을 만 들 고 수요 에 따라 요 소 를 추가 할 수 있 습 니 다.
    #!/bin/bash
    #
    i=0
    while true
    do
      read -p "      (yes/no):" a
      if [ $a = no ];then
        break
      fi
      read -p "    $[$i+1]   :" b
      num[$i]=$b
      let i++
    done
    echo ${num[*]}
    
  • 배열 길이 가 져 오기
  • ${   [@/*]}
    
  • 아래 표 시 된 값 읽 기
  • ${   [  ]}
    
  • 배열 옮 겨 다 니 기
  • 예 1: 배열 을 옮 겨 다 니 며 배열 의 60 보다 작은 값 을 찾 아 60 을 직접 부여 한다.
    #!/bin/bash
    score=(88 90 56 24 70 89)
    for ((i=0;i

    예 2: 출력 배열 의 최대 값
    #!/bin/bash
    score=(72 88 42 55 90)
    temp=0
    for ((i=0;i

    예 3: 한 배열 의 요 소 를 작은 것 에서 큰 것 으로 정렬 합 니 다 (일명 거품 정렬)
    #!/bin/bash
    #
    score=(72 63 88 91 45)
    for ((i=1;i

    배열 절편
    ${   [@/*]:    :  }
    

    예:
    [root@localhost ~]# num=(15 16 17 18 19)
    [root@localhost ~]# echo ${num[*]:1:3}
    16 17 18
    

    배열 의 교체
    ${   [@/*]/    /    }
    

    예:
    [root@localhost ~]# num=(15 16 17 18 19)
    [root@localhost ~]# echo ${num[*]/17/20}
    15 16 20 18 19
    

    배열 삭제
    unset
    

    예: 배열 의 60 이하 요 소 를 삭제 합 니 다.
    #!/bin/bash
    #
    i=0
    score=(45 65 70 84 91 33)
    for k in ${score[*]} ;do
      if [ $k -lt 60 ];then
        unset score[$i]
      fi
      let i++
    done
    echo ${score[*]}
    

    4. Shell 스 크 립 트 디 버 깅
  • echo 명령
  • bash 명령
  • 명령 문법
    sh [-nvx]    
    
       :-n    ,     ;-vx         
    
  • set 명령
  • set - x: 조절 모드 오픈
  • set + x: 조절 모드 닫 기
  • 좋은 웹페이지 즐겨찾기