getopt(1) CLIX getopt(1)
NAME
getopt - Parses command options
SYNOPSIS
set -- `getopt optstring $*`
DESCRIPTION
CAUTION: Start using the new command getopts in place of getopt. The
getopt command will not be supported in the next major release. For more
information, see the CAUTIONS section.
The getopt command is used to break up options in command lines for easy
parsing by shell procedures and to check for legal options. The optstring
argument is a string of recognized option letters (see getopt()); 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
1. 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
exity 2
fi
for i in $*
do
case $i in
-a | -b) FLAG=$i; shift;;
-o) OARG=$2; shift 2;;
--) shift; break;;
esac
done
2. This code will accept any of the following as equivalent:
cmd -aoarg file file
2/94 - Intergraph Corporation 1
getopt(1) CLIX getopt(1)
cmd -a -o arg file file
cmd -oarg -a file file
cmd -a -oarg -- file file
CAUTIONS
The command getopt does not support the part of Rule 8 of the command
syntax standard (see intro) 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 in place of getopt.
The command getopt 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 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
the getopt command 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.
DIAGNOSTICS
The getopt command displays an error message on stderr when it encounters
an option letter not included in optstring.
EXIT VALUES
The getopt command exits with a value of 0 if successful. If
unsuccessful, this command exits with a value of 2.
RELATED INFORMATION
Commands: getopts(1), sh(1)
Functions: getopt(3)
2 Intergraph Corporation - 2/94