ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Bash Shell script] 쉘 스크립트에 인수 넘겨주기(Argument parsing)
    [IT] 공부하는 개발자/Linux Shell 2019. 9. 15. 19:43
    #! /bin/bash
    
    if [ $# -lt 1 ] ;  then
      echo '인수를 넘겨주세요 (option1/option2/option3)'
      exit 1
    fi
    
    MY_ARGUMENT=`echo $1 | tr '[A-Z]' '[a-z]'`;
    
    echo 내 인수: ${MY_ARGUMENT}

    [스크립트의 가상 조건]

    조건 1: 인수가 넘어오지 않으면 '인수를 넘겨주세요'라는 메시지를 출력하고 종료하라.

    조건 2: 넘어온 인수의 대문자는 소문자로 파싱하여 처리하라.


    콘솔에서 인수(Argument)를 넘겨주고, 내부에서 받아오는 스크립트를 작성해보았다. 파이썬이나 자바는 기존 라이브러리를 사용하면 (ex. argparse) 단순히 메소드만 호출하여 대소문자 처리, 인수 강제여부 등 각종 예외상황을 쉽게 처리할 수 있지만, 쉘 스크립트는 자기 자신이 직접 예외처리를 생각해 가며 작성해야 한다.

     

     

    [ 예상 실행 결과 ]


     

     

    $# : 넘어오는 인수의 개수

    $0 : 쉘 스크립트의 파일명

    $1 : 쉘 스크립트로 넘어온 첫번째 인수

    $2 : 쉘 스크립트로 넘어온 두번째 인수


     

    - lt  : less than 의 줄임 명령어. 즉 if [ $# -lt 1 ] 는 넘어온 인수의 개수가 1보다 적을 때 if 절 안의 구문을 실행하라는 것이다. 

    - eq : equal to 의 줄임 명령어. 하지만 == 가 더 보편적으로 쓰인다.

    - gt : greater than 의 줄임 명령어. 가령 if [ $# -gt 1 ] 는 넘어온 인수의 개수가 1보다 많을 때에 if 절 안의 구문을 실행하라는 것이다. 

     

    댓글

Copyright in 2020 (And Beyond)