getopt(3)
API와 유사하게, 셸 스크립트에서도 셸 내부 명령어인 getopts
로 옵션을 처리할 수 있다.while
과 shift
를 조합해도 옵션 처리를 할 수 있다.getopts
명령어는 while
문과 case
문을 조합해서 사용한다.while getopts 옵션1[:]옵션2[:]... 변수명
do
case $변수명 in
옵션1)
수행문 ;;
옵션2)
수행문 ;;
done
:
를 붙인다.OPTARG
변수에 해당 옵션의 파라미터 값이 전달된다.OPTIND
변수에는 getopts명령어가 처리할 다음 인수 번호를 갖고 있다.$1
이 옵션과 옵션 파라미터가 아닌 참 실행인자가 담기게 된다.#!/bin/sh
while getopts rsp: OPT
do
case $OPT in
r)
echo "Rock" ;;
s)
echo "Scissors" ;;
p)
echo "$OPTARG Paper" ;;
esac
done
shift `expr $OPTIND - 1`
echo $1
$ sh opt.sh -p Red -s Argument1
Red Paper
Scissors
Argument1
이것으로 셸 스크립트 시리즈는 마무리 됐다.