Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sh5(1)

getopt(3)

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.

See Also

sh5(1), getopt(3)

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