alt_getopt(1) 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.

 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

  help () {
    cat 1>&2 <<EOF is a demo program for
  # 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 ' 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)