:man| Alphabetical   Categories   About us 
 
GETOPT (1) | General commands | Unix Manual Pages | :man

NAME

getopt - parse command options

CONTENTS

Synopsis
Description
Exit Status
Examples
See Also
History
Bugs

SYNOPSIS

args=`getopt optstring $*` ; errcode=$?; set -- $args

DESCRIPTION

The getopt utility is used to break up options in command lines for easy parsing by shell procedures, and to check for legal options. Optstring is a string of recognized option letters (see getopt(3)); 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. The getopt utility will place ‘--’ in the arguments at the end of the options, or recognize it if used explicitly. The shell arguments ($1 $2 ...) are reset so that each option is preceded by a ‘-’ and in its own shell argument; each option argument is also in its own shell argument.

EXIT STATUS

The getopt utility prints an error message on the standard error output and exits with status > 0 when it encounters an option letter not included in optstring.

EXAMPLES

The following code fragment shows how one might process the arguments for a command that can take the options -a and -b , and the option -o , which requires an argument.


args=`getopt abo: $*`
# you should not use `getopt abo: "$@"` since that would parse
# the arguments differently from what the set command below does.
if [ $? -ne 0 ]
then
echo ’Usage: ...’
exit 2
fi
set -- $args
# You cannot use the set command with a backquoted getopt directly,
# since the exit code from getopt would be shadowed by those of set,
# which is zero by definition.
for i
do
case "$i"
in
-a|-b)
echo flag $i set; sflags="${i#-}$sflags";
shift;;
-o)
echo oarg is "’"$2"’"; oarg="$2"; shift;
shift;;
--)
shift; break;;
esac
done
echo single-char flags: "’"$sflags"’"
echo oarg is "’"$oarg"’"

This code will accept 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

SEE ALSO

getopts(1), sh(1), getopt(3)

HISTORY

BUGS

getopt(3)

 
Created by Blin Media, 2008-2013