alt_getopt - parse command options
cmds=`alt_getopt opt1 action1 [opt2 action2...] -- "$@"`
eval "$cmds"
alt_getopt is a command options parser. It conforms to POSIX and supports
long options, that is works the same way as getopt_long(3) found in
*BSD and GNU libc.
The following shell script accepts the options: -v (or --verbose), -h (or
--help), long option --fake without short synonym, --len accepting argument,
-o (or --output) accepting argument, short options -f and -F without long
synonyms etc. If option is applied, appropriate shell command is executed.
#!/bin/sh
help () { echo 'help here'; }
process_args (){
alt_getopt \
'v|verbose' 'verbose=1' \
'h help' help \
'fake' fake_flag=1 \
'=len' len= \
'=o output' output= \
'=m msg' "msg=" \
'V version' "echo 'alt_getopt-0-1-0'" \
f 'flag=1' \
F 'flag=' \
=n number= \
-- "$@"
}
cmds=`process_args "$@"`
eval "$cmds"
echo "flag=$flag"
echo "msg=$msg"
...
Another way to handle options using alt_getopt.sh
#!/bin/sh
. alt_getopt.sh
help () {
cat 1>&2 <<EOF
demo_alt_getopt2.sh is a demo program for alt_getopt.sh
OPTIONS:
$help_msg
EOF
}
# the third argument in add_arg function envocation is optional
add_arg 'h help' 'help; exit 0' \
' -h|--help display this help'
add_arg 'v|version' "echo 'demo_alt_getopt2.sh 0.1.0'" \
' -v|--version display version'
add_arg '=o|output' "output=" \
' -o|--output output file'
process_args "$@"
shift "$shifts"
echo "output=$output"
<http://sourceforge.net/projects/runawk/>