getopt(1) General Commands Manual getopt(1)
Name
getopt - parse command options
Syntax
set - - getopt optstring $*
Description
The 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
The special option, specified by two minus signs (- -), delimits the end of the options. If the delimiters are used explicitly, recognizes
it; otherwise, generates it. In either case, 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 command prints an error message on the standard error when it encounters an option letter not included in optstring.
See Also
sh5(1), getopt(3)
getopt(1)