ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 변태 개발자되기 프로젝트 - 쉘 스크립트 배열
    쉘 스크립트 기초 2022. 3. 5. 11:20
    반응형

    안녕하세요 레인스톤입니다:)

    오늘은 지난시간에 살펴본 변수에 이어서 배열에 대해 살펴보겠습니다.

    배열

    bash shell에서 배열을 만드는 법도 어렵지 않습니다.

    즉 기존에 사용하시던 프로그래밍 언어의 방식과 크게 다르지 않습니다.

     

     #!/bin/sh
    
     TEST_ARR=(1 2 3 4 5)
    
     echo $TEST_ARR

     

    자~ 지난 시간 변수 파트에서 배운 것처럼 변수명과 값사이에 공백없이 =을 사용해줍니다.

    그리고 원하는 값을 ()안에 넣어주면 배열완성!

     

    위 스크립트를 실행하면 1 2 3 4 5가 나오겠죠?

     

    sh test.sh
    1 ## 실행결과

     

    ???? 왜 1만나옴...?

    진짜 당황해서 찾아보니 인덱스를 지정하지 않으면 첫 번째값만 출력된다고합니다.

    배열의 모든 값을 출력하고 싶으면 인덱스에 * 또는 @를 사용해주면 된다고합니다.

     

     #!/bin/sh
    
     TEST_ARR=(1 2 3 4 5)
    
    # 배열의 모든 값에 접근
     echo ${TEST_ARR[@]} # 실행결과 1 2 3 4 5
     echo ${TEST_ARR[*]} # 실행결과 1 2 3 4 5

     

    이쯤되면 배열값을 한 번 바꿔보고 싶어지는데요?

    따로 찾아보지말고 제가 알고있는 프로그래밍 방식대로 바꿔볼까요?

     

     #!/bin/sh
    
     TEST_ARR=(1 2 3 4 5)
     TEST_ARR[0]=0
    
     echo ${TEST_ARR[@]}

     

    TEST_ARR에 0번 인덱스에 접근해서 0으로 바꿔준다!

    그리고 결과를 살펴보면!?

     

    sh test.sh
    0 2 3 4 5

     

    오 ~ 성공적으로 값이 바뀌는 걸 확인했습니다.

    bash shell이라고 해서 막 그렇게 변태같지는 않은 거 같네요:)

     

    이번엔 배열의 길이를 한 번 확인해보겠습니다.

    요건 프로그래밍 지식으로는 안되더라구요 ㅠㅠ

    bash shell에서는 일반적으로 count를 확인할 때 #을 사용하는 것 같아요!

     

     #!/bin/sh
    
     TEST_ARR=(1 2 3 4 5)
    
     echo ${#TEST_ARR[@]}

     

    쨘 ~ 차이점이 보이시나요?

    모든 배열에 접근을 하는 ${ARR[@]} 앞에 #을 넣어주면 됩니다.

     

    sh test.sh
    5

     

    그럼 이렇게 배열의 길이(카운트)를 확인할 수 있습니다.

    기본적인 배열 사용법 크게 어렵지 않죠?

     

    끗!

     

    bash shell의 세계는 멀고도 험한 것 같습니다.

    다음 시간에는 반복문 사용법으로 돌아오겠습니다:)

    오늘 하루도 화이팅~!

    반응형

    댓글

Designed by Tistory.