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 option letters are recognized if a letter is followed by a colon, the option expects 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 minus signs (− −), 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 minus sign (−) and is in its own positional parameter; each option argument is also parsed into its own positional parameter.
Examples
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.