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
       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"

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

SEE ALSO getopt(3) getopt_long(3)
				  2014-12-26			 alt_getopt(1)

NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | HOME | SEE ALSO getopt(3) getopt_long(3)

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

home | help