| HOME / 정보공유 / AIX 명령어 모음

getopts
getopts getopts 명령 목적 명령행 인수를 처리하고 유효한 옵션을 검사합니다. 구문
getopts OptionString Name [ Argument ...]
설명
getopts 명령은 매개변수 리스트에서 옵션 및 옵션 인수를 검색하는 Korn/POSIX 쉘 내장 명령입니다. 옵션은 +(더하기 부호) 또는 -(빼기 부호)로 시작하며 뒤에 문자가 따라옵니다. + 또는 -로 시작하지 않는 옵션은 OptionString을 종료합니다. getopts 명령이 호출될 때마다, Name에 있는 다음 옵션의 값과 쉘 변수 OPTIND에서 처리될 다음 인수의 색인을 배치합니다. 쉘이 호출될 때마다 OPTIND는 1로 초기화됩니다. 옵션이 +로 시작하면, +는 Name에 있는 값 앞에 추가됩니다.
OptionString에 있는 문자 다음에 :(콜론)이 나오면, 옵션에 인수가 있는 것으로 간주됩니다. 옵션에 옵션-인수가 필요하면, getopts 명령은 이를 OPTARG 변수에 배치합니다.
OptionString에 없는 옵션 문자를 발견하거나 발견된 옵션이 필요한 옵션 인수를 갖고 있지 않을 경우,
OptionString이 :(콜론)으로 시작하지 않을 경우,
Name은 알려지지 않은 문자에 대해서는 ?(물음표) 문자로 설정됩니다.
OPTARG. 설정하지 않을 것입니다. 그리고
진단 메세지를 표준 오류에 기록할 것입니다.
이 조건은 getopts 명령을 처리하는 중에 생긴 오류가 아니라, 응용프로그램을 호출하기 위해 인수를 표시하는 방법에서 발견된 오류라고 생각됩니다. 따라서 진단 메세지를 상태에 따라 기록할 것이지만, 종료 상태는 0이 될 것입니다.
OptionString이 :(콜론)으로 시작할 경우,
Name은 알려지지 않은 문자에 대해서는 ?(물음표) 문자로 설정되고, 필수 옵션이 누락된 경우에는 :(콜론)으로 설정됩니다.
OPTARG를 발견된 옵션 문자로 설정할 것입니다.
어떠한 출력도 표준 오류에 기록하지 않을 것입니다.
다음 모든 경우가 옵션의 끝을 식별합니다. 특별 옵션인 - -, - 또는 +로 시작하지 않는 인수 발견, 또는 오류 발견.
옵션 끝에 도달했을 경우.
getopts 명령은 영(0)보다 큰 리턴 값으로 종료됩니다.
OPTARG은 이전에 표시되는 비옵션 인수가 없으면 첫 번째 - - 인수를 옵션 인수로 간주하는 첫 번째 비옵션 인수의 색인에 대해 설정되거나 비옵션 인수가 없으면 $#+1 값으로 설정됩니다.
Name은 알려지지 않은 문자에 대해서는 ?(물음표)로 설정됩니다.
매개변수
OptionString getopts 명령이 인식할 수 있는 옵션 문자로 구성된 문자열을 포함합니다. 문자 다음에 콜론이 오면, 그 옵션에는 인수가 있는 것으로 간주되며 이는 분리 인수로 제공되어야 합니다. 옵션은 공백으로 인수와 분리될 수 있습니다. OptionString의 첫번째 인수는 옵션 문자가 알려져 있지 않은지 또는 옵션-인수가 누락되었는지에 따라 getopts 명령의 작동을 결정합니다.
주: 응용프로그램이 물음표 및 콜론 문자를 옵션 문자로 사용해서는 안 됩니다. 영숫자가 아닌 다른 문자를 사용하면 지정하지 않은 결과가 발생합니다.
Name getopts 명령으로 발견한 옵션 문자를 설정합니다.
Argument... 공백 문자로 분리된 하나 이상의 문자열로서, getopts 명령이 올바른 옵션인지를 검사합니다. Argument를 생략하면, 위치 매개변수가 사용됩니다. 위치 매개변수에 대한 자세한 정보는 Korn 쉘의 매개변수 대체를 참조하십시오.
주: 일반적으로 Argument를 getopts 명령의 일부로 지정하지 않지만, 스크립트를 디버깅할 때 도움을 얻을 수 있습니다.
종료 상태
이 명령은 다음 종료 값을 리턴합니다.
0 OptionString이 지정하거나 지정하지 않은 옵션을 발견하였습니다.
>0 옵션 끝에 도달했거나 오류가 발생했습니다.
예제
다음 getopts 명령은 a, b, 및 c이 유효한 옵션이고 a and c 옵션에 인수가 있음을 지정합니다.
getopts a:bc: OPT
다음 getopts 명령은 명령행에서 비정의된 옵션을 발견했을 경우, a, b 및 c가 유효한 옵션이고, a 및 b에 인수가 있으며, getopts이 OPT의 값을 ?으로 설정하다는 것을 지정합니다.
getopts :a:b:c OPT
다음 스크립트는 분석하고 인수를 나타냅니다.
aflag=
bflag=
while getopts ab: name
do
case $name ina) aflag=1;;b)
bflag=1bval="$OPTARG";;?)
printf "Usage: %s: [-a] [-b value] args\n" $0exit 2;;esacdone
if [ ! -z "$aflag" ]; then
printf "Option -a specified\n"fi
if [ ! -z "$bflag" ]; then
printf 'Option -b "%s" specified\n' "$bval"fi
shift $(($OPTIND -1))
printf "Remaining arguments are: %s\n" "$*"