Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getopt(1) — Interactive 3.2r4.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getopts(1)

sh(1)

getopt(3C)

GETOPT(1)  —  

NAME

getopt − parse command options

SYNOPSIS

set −− `getopt optstring $∗`

DESCRIPTION

WARNING: Start using the new command getopts(1) in place of getopt(1). getopt(1) will not be supported in the next major release. For more information, see the WARNINGS section below. 

The getopt command is used to break up options in command lines for easy parsing by shell procedures and to check for legal options.  optstring is a string of recognized option letters [see getopt(3C)]; if a letter is followed by a colon, the option is expected to have an argument which may or may not be separated from it by white space.  The special option −− is used to delimit the end of the options.  If it is used explicitly, getopt will recognize it; otherwise, getopt will generate it; in either case, getopt will place it at the end of the options.  The positional parameters ($1 $2 ...) of the shell are reset so that each option is preceded by a − and is in its own positional parameter; each option argument is also parsed into its own positional parameter. 

EXAMPLE

The following code fragment shows how one might process the arguments for a command that can take the options a or b, as well as the option o, which requires an argument:

set −− `getopt abo: $∗`
if [ $? != 0 ]
then
echo $USAGE
exit 2
fi
for i in $∗
do
case $i in
−a │ −b)FLAG=$i; shift;;
−o)OARG=$2; shift 2;;
−−)shift; break;;
esac
done

This code will accept any of the following as equivalent:

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

SEE ALSO

getopts(1), sh(1). 
getopt(3C) in the INTER­ACTIVE SDS Guide and Programmer’s Reference Manual. 

DIAGNOSTICS

The getopt command prints an error message on the standard error when it encounters an option letter not included in optstring.

WARNINGS

The getopt(1) command does not support the part of Rule 8 of the command syntax standard [see intro(1)] that permits groups of option-arguments following an option to be separated by white space and quoted. For example,

cmd −a −b −o "xxx z yy" file

is not handled correctly. To correct this deficiency, use the new command getopts(1) in place of getopt(1).

getopt(1) will not be supported in the next major release. For this release, a conversion tool has been provided, getoptcvt. For more information about getopts and getoptcvt, see the getopts(1) manual page.

If an option that takes an option-argument is followed by a value that is the same as one of the options listed in optstring (referring to the earlier EXAMPLE section, but using the following command line: cmd -o -a file), getopt will always treat −a as an option-argument to −o; it will never recognize −a as an option.  For this case, the for loop in the example will shift past the file argument. 

\*U  —  Version 1.0

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026