g

getopts(1)

getopts(1)

NAME

getopts - parse utility (command) options

SYNOPSIS

getopts optstring name [ arg ... ]

DESCRIPTION

getopts is used to retrieve options and option-arguments from a list of parameters.

Each time it is invoked, getopts places the value of the next option in the shell variable speci®ed by the name operand and the index of the next argument to be processed in the shell variable OPTIND. Whenever the shell is invoked, OPTIND is initialized to 1.

When the option requires an option-argument, getopts places it in the shell variable OPTARG. If no option was found, or if the option that was found does not have an option-argument, OPTARG is unset.

If an option character not contained in the optstring operand is found where an option character is expected, the shell variable speci®ed by name is set to the question-mark (?) character. In this case, if the ®rst character in optstring is a colon (:), the shell variable OPTARG is set to the option character found, but no output is written to standard error; otherwise, the shell variable OPTARG is unset and a diagnostic message is written to standard error. This condition is considered to be an error detected in the way arguments were presented to the invoking application, but is not an error in getopts processing.

If an option-argument is missing:

If the ®rst character of optstring is a colon, the shell variable speci®ed by name is set to the colon character and the shell variable OPTARG is set to the option character found.

Otherwise, the shell variable speci®ed by name is set to the question-mark character, the shell variable OPTARG is unset, and a diagnostic message is written to the standard error. This condi- tion is considered to be an error detected in the way arguments are presented to the invoking application, but is not an error in getopts processing; a diagnostic message is written as stated, but the exit status is zero.

When the end of options is encountered, getopts exits with a return value greater than zero. The shell variable OPTIND is set to the index of the ®rst nonoption-argument, where the ®rst - - argument is considered to be an option argument if there are no other non-option arguments appearing before it, or the value $# + 1 if there are no nonoption-arguments; the name variable is set to the question-mark character. Any of the following identi®es the end of options: the special option - -, ®nding an argument that does not begin with a -, or encountering an error.

The shell variables OPTIND and OPTARG are local to the caller of getopts and are not exported by default.

The shell variable speci®ed by the name operand, OPTIND, and OPTARG affect the current shell execution environment.

Operands

The following operands are supported:

optstring

A string containing the option characters recognized by the utility invoking

 

getopts. If a character is followed by a colon (:), the option will be expected to

 

have an argument, which should be supplied as a separate argument. Applications

 

should specify an option character and its option-argument as separate arguments,

 

but getopts will interpret the characters following an option character requiring

 

arguments as an argument whether or not this is done. An explicit null option-

 

argument need not be recognised if it is not supplied as a separate argument when

 

getopts is invoked. The characters question-mark (?) and colon (:) must not be

 

used as option characters by an application. The use of other option characters that

 

are not alphanumeric produces unspeci®ed results. If the option-argument is not sup-

 

plied as a separate argument from the option character, the value in OPTARG will be

 

stripped of the option character and the -. The ®rst character in optstring will deter-

 

mine how getopts will behave if an option character is not known or an option-

 

argument is missing.

 

name

The name of a shell variable that is set by getopts to the option character that was

 

found.

 

Section 1332

− 1 −

HP-UX Release 11i: December 2000