Manpages

GETOPT(1) BSD General Commands Manual GETOPT(1)

NAME

getopt — 명 령 행 옵 션 분 석

SYNOPSIS

set −− `getopt optstring $*`

DESCRIPTION

Getopt 풀 그 림 은 쉘 스 크 립 트 파 일 안 에 서 그 쉘 스 크 립 트 의 명 령 행 옵 션 을 처 리 하 고 자 할 때 그 것 을 쉽 게 처 리 할 수 있 도 록 하 는 데 사 용 된 다 . optstring은 그 쉘 스 크 립 트 의 명 령 행 옵 션 들 이 다 ( getopt(3) 참 조 ).
이 때 , 콜 론 (:)이 오 면 , 그 앞 에 있 는 옵 션 은 그 옵 션 에 대 한 공 백 문 자 가 있 거 나 공 백 문 자 로 구 분 하 는 인 자 를 가 지 는 옵 션 으 로 간 주 한 다 (아 래 예 제 참 조 ). 특 수 하 게 , 옵 션 은 해 당 스 크 립 트 자 체 에 대 한 옵 션 은 끝 이 났 음 을 알 리 는 옵 션 이 다 .
Getopt
풀 그 림 은 다 음 에 오 는 내 용 들 은 그 스 크 립 트 의 옵 션 으 로 간 주 하 지 않 고 , 스 크 립 트 의 명 령 행 인 자 ($1 $2 ...)로 간 주 해 서 필 요 하 다 면 , 그 인 자 에 서 사 용 되 는 옵 션 으 로 처 리 할 수 도 있 다 .
이 해 를 쉽 게 하 기 위 해 아 래 예 제 를 살 펴 보 자 .

EXAMPLE

다 음 예 제 는 그 옵 션 만 으 로 사 용 되 는 [a] 와 [b] 옵 션 과 [o] 옵 션 과 함 께 이 옵 션 에 대 한 자 체 적 인 인 자 를 가 지 는 옵 션 을 처 리 하 는 한 쉘 스 크 립 트 의 부 분 이 다 .

set −− `getopt abo: $*`
if test $? != 0
then

echo ’Usage: ...’

exit 2

fi
for i
do

case "$i"

in

−a|−b)

flag=$i; shift;;

−o)

oarg=$2; shift; shift;;

−−)

shift; break;;

esac

done

이 상 과 같 이 작 성 되 었 을 경 우 에 는 다 음 과 같 은 명 령 행 명 령 이 사 용 될 수 있 다 :

cmd −aoarg file file
cmd −a −o arg file file
cmd −oarg -a file file
cmd −a −oarg −− file file

SEE ALSO

sh(1), getopt(3)

DIAGNOSTICS

명 령 행 에 서 옵 션 이 잘 못 지 정 되 었 을 경 우 에 는 표 준 오 류 출 력 장 치 (/dev/stderr)로 그 해 당 오 류 메 시 지 를 출 력 한 다 .

HISTORY

Henry Spencer가 Bell Labs manual page에 서 일 할 때 만 들 었 다 . 그 래 서 , 이 풀 그 림 의 사 용 법 은 Bell version의 그 것 과 같 은 형 태 를 취 한 다 .

BUGS

getopt(3) 함 수 가 가 지 고 있 는 벌 레 는 모 두 가 지 고 있 다 . 이 풀 그 림 이 이 함 수 를 사 용 하 기 때 문 .

각 종 인 자 들 의 구 분 을 특 수 문 자 로 할 경 우 , 그 것 의 구 분 이 눈 으 로 는 구 분 되 지 않 는 다 (공 백 문 자 로 구 분 한 것 과 같 게 나 타 나 기 때 문 ). 만 약 인 자 구 분 을 특 수 문 자 로 했 을 경 우 에 는 오 류 를 발 생 할 수 도 있 다 . 이 것 은 쉽 게 발 견 되 지 않 는 오 류 이 다 . 참 고 할 것 .

오 류 메 시 지 의 처 리 는 쉘 에 서 표 준 오 류 출 력 장 치 로 보 내 는 것 보 다 , 쉘 스 크 립 트 안 에 서 자 체 적 으 로 그 에 맞 는 오 류 메 시 지 를 출 력 하 는 것 이 바 람 직 하 다 . 이 것 은 사 용 자 가 표 준 오 류 출 력 장 치 로 보 내 지 는 메 시 지 를 보 지 못 할 경 우 가 발 생 할 수 도 있 기 때 문 이 고 , 또 한 각 종 쉘 에 서 적 당 한 오 류 메 시 지 를 정 확 하 게 보 낸 다 는 보 장 이 없 기 때 문 이 다 .

BSD June 21, 1993 BSD