|
getopt
Parse command options.
Break up the options in a command line (for easy parsing by shell procedure),
and check for legal options.
SYNTAX args=`getopt optstring $*` ; errcode=$?; set -- $args Options Optstring A string of recognized option letters either individual characters or characters followed by a colon to indicate an argument is to follow. e.g. an option string x recognizes an option "-x", and an option string x: recognizes an option and argument "-x argument". It does not matter if the argument has leading white space. `--' This special option is used to delimit the end of the options. getopt will place `--' in the arguments at the end of the options, or recognize it if used explicitly. ($1 $2 ...) The shell arguments 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. 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 [ $? != 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
"Edinburgh is in a different country from the rest of England" - Anon
Related commands:
sh(1), getopt(3)
Equivalent BASH command:
getopts - Parse command options.