getopt(1)
NAME
getopt − parse command options
SYNTAX
set −− getopt optstring $∗
DESCRIPTION
The getopt command breaks up options in command lines for easy parsing by Shell procedures and checks for legal options. The optstring recognized string of option letters; if a letter is followed by a colon, the option should have an argument which may or may not be separated from it by white space. For further information, see getopt(.).
The special option, specified by two en dashes (−−), delimits the end of the options. If the delimiters are used explicitly, getopt recognizes it; otherwise, getopt generates it. In either case, getopt places the delimiter at the end of the options. The positional parameters ($1 $2 ...) of the shell are reset so that each option is preceded by a single en dash (−) 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 you can process the arguments for a command that can take the options a or b, as well as the option o, which requires an argument:
#!/bin/sh5
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 accepts 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
DIAGNOSTICS
The getopt command prints an error message on the standard error when it encounters an option letter not included in optstring.