SYNOPSIS
cmds=`alt_getopt opt1 action1 [opt2 action2...] -- "$@"`
eval "$cmds"
DESCRIPTION
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.EXAMPLES
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"
SEE ALSO getopt(3) getopt_long(3)