Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
alt_getopt(1)							   alt_getopt(1)

NAME
     alt_getopt - parse command options

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  argu-
     ment,  -o (or --output) accepting argument, short options -f and -F without
     long synonyms etc. If option is applied, appropriate shell command is  exe-
     cuted.

      #!/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"

HOME
     <http://sourceforge.net/projects/runawk/>

SEE ALSO getopt(3) getopt_long(3)
				   2019-02-15			   alt_getopt(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=alt_getopt&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help