table of contents
GETOPT(1) | 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¶
DIAGNOSTICS¶
명령행에서 옵션이 잘못 지정되었을 경우에는 표준 오류 출력 장치(/dev/stderr)로 그 해당 오류 메시지를 출력한다.
HISTORY¶
Henry Spencer가 Bell Labs manual page에서 일할 때 만들었다. 그래서, 이 풀그림의 사용법은 Bell version의 그것과 같은 형태를 취한다.
BUGS¶
getopt(3) 함수가 가지고 있는 벌레는 모두 가지고 있다. 이 풀그림이 이 함수를 사용하기 때문.
각종 인자들의 구분을 특수문자로 할 경우, 그것의 구분이 눈으로는 구분되지 않는다(공백문자로 구분한 것과 같게 나타나기 때문). 만약 인자 구분을 특수문자로 했을 경우에는 오류를 발생할 수도 있다. 이것은 쉽게 발견되지 않는 오류이다. 참고할 것.
오류 메시지의 처리는 쉘에서 표준 오류 출력 장치로 보내는 것보다, 쉘 스크립트안에서 자체적으로 그에 맞는 오류 메시지를 출력하는 것이 바람직하다. 이것은 사용자가 표준 오류 출력 장치로 보내지는 메시지를 보지 못할 경우가 발생할 수도 있기 때문이고, 또한 각종 쉘에서 적당한 오류메시지를 정확하게 보낸다는 보장이 없기 때문이다.
June 21, 1993 | Linux 5.14.0-427.18.1.el9_4.x86_64 |