강좌 & 팁
글 수 2,412
2014.11.13 15:34:25 (*.134.169.166)
51310
gnu software에서 hello_world라는 패키키에는 C프로그램에서 사용할 수 있는 getopt()에 대한 사용법이 예시되어 있다.
bash 스크립트에서도 'getopt'라는 외부명령어를 이용해서 사용자가 입력한 커맨드라인으로부터
여러 옵션과 파라미터를 얻을 수 있다. getopt을 사용해서 사용자의 편의성제고와 프로그램의 가지를 높일 수 있다.
getopt 명령은 다음과 같이 사용할 수 있다
getopt -o "vh" -l "output:,verbose,help" arg1 arg2
위에서 나온 결과를 set명령을 통해 파라메터변수($1,$2,...)에 세팅할 수 있다.
'-o'옵션값('vh') 는 짧은 옵션리스트이다. '-v'와 '-h'를 사용한다는 것을 지정한다.
'-l'옵션값, "output:,verbose,help"는 long-option으로 '--output', '--verbose', '--help'를
사용하겠다는 것을 지정한다. 옵션이름 뒤의 콜론은 옵션값을 받는다는 것을 지정한다.
다음은 bash스크립트에서 커맨드라인 파싱의 편의성을 위한 함수, parse_options()이다.
이 함수를 호출하기 위해서는 다음과 같이 스크립트에서 받은 파라메미리스트('$@')를 그대로 parse_option()으로 전달한다.
파싱된 옵션을 제외한 순수한 파라미터리스트가 arglist라는 변수에 할당되게 된다.
첨부된 테스트스크립트('test_getopt.sh')를 다음과 같이 사용할 수 있다.