-
[Bash shell script] 쉘 스크립트에 인수 넘겨주기(Argument parsing)개발지식 아카이브/ETC 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 절 안의 구문을 실행하라는 것이다.
'개발지식 아카이브 > ETC' 카테고리의 다른 글
Groovy Spock 을 쓰는 이유, 코드 작성 예시 소개 (0) 2021.02.15 logstash 'unknown setting *** for jdbc' 에러 메시지 (0) 2020.12.07 [엘라스틱서치] ElasticSearch & 키바나 시큐리티 기능 구현 (0) 2019.09.08 [도커 + 엘라스틱서치] Docker로 ElasticSearch ELK 스택 디플로이 (0) 2019.08.26 [ElasticSearch 엘라스틱서치] 멀티 필드 맵핑, 정렬과 검색을 동시에 (2) 2019.08.21