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

FreeBSD Manual Pages


home | help
getoptcvt(1)			 User Commands			  getoptcvt(1)

       getoptcvt - convert to getopts to parse command options

       /usr/lib/getoptcvt [-b] filename


       /usr/lib/getoptcvt  reads  the shell script in filename,	converts it to
       use getopts instead of getopt, and writes the results on	 the  standard

       getopts is a built-in Bourne shell command used to parse	positional pa-
       rameters	and to check for valid options.	See sh(1). It supports all ap-
       plicable	 rules	of  the	 command  syntax standard (see Rules 3-10, in-
       tro(1)).	 It should be used in place of the getopt  command.  (See  the
       NOTES  section below.) The syntax for the shell's built-in getopts com-
       mand is:

       getopts optstring name [	argument...]

       optstring must contain the option letters  the  command	using  getopts
       will  recognize;	 if a letter is	followed by a colon (:), the option is
       expected	to have	an argument, or	group of arguments, which must be sep-
       arated from it by white space.

       Each  time  it  is invoked, getopts places the next option in the shell
       variable	name and the index of the next argument	to be processed	in the
       shell variable OPTIND. Whenever the shell or a shell script is invoked,
       OPTIND is initialized to	1.

       When an option requires an option-argument, getopts places  it  in  the
       shell variable OPTARG.

       If an illegal option is encountered, ? will be placed in	name.

       When  the  end of options is encountered, getopts exits with a non-zero
       exit status. The	special	option	-- may be used to delimit the  end  of
       the options.

       By  default,  getopts parses the	positional parameters.	If extra argu-
       ments (argument ...)  are given on the getopts  command	line,  getopts
       parses them instead.

       So that all new commands	will adhere to the command syntax standard de-
       scribed in intro(1), they should	use getopts or getopt to  parse	 posi-
       tional parameters and check for options that are	valid for that command
       (see the	NOTES section below).

       The following option is supported:

       -b	Makes the converted script portable to earlier releases	of the
		UNIX  system.  /usr/lib/getoptcvt modifies the shell script in
		filename so that when the resulting shell script is  executed,
		it determines at run time whether to invoke getopts or getopt.

       Example 1: Processing the arguments for a command

       The  following  fragment	of a shell program shows how one might process
       the arguments for a command that	can take the options -a	or -b, as well
       as the option -o, which requires	an option-argument:

       while getopts abo: c
	     case $c in
	     a | b)	FLAG=$c;;
	     o)		OARG=$OPTARG;;
	     \?)	echo $USAGE
			exit 2;;
       shift `expr $OPTIND - 1`

       Example 2: Equivalent code expressions

       This code accepts any of	the following as equivalent:

       cmd -a -b -o "xxx z yy" filename
       cmd -a -b -o "xxx z yy" -filename
       cmd -ab -o xxx,z,yy filename
       cmd -ab -o "xxx z yy" filename
       cmd -o xxx,z,yy b a filename

       See  environ(5) for descriptions	of the following environment variables
       that affect  the	 execution  of	getopts:  LC_CTYPE,  LC_MESSAGES,  and

       OPTIND	       This  variable is used by getoptcvt as the index	of the
		       next argument to	be processed.

       OPTARG	       This variable is	used by	getoptcvt to store  the	 argu-
		       ment if an option is using arguments.

       The following exit values are returned:

       0	An option, specified or	unspecified by optstring, was found.

       >0	The end	of options was encountered or an error occurred.

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Availability		     |SUNWcsu			   |
       |CSI			     |enabled			   |

       intro(1),   getopts(1),	 sh(1),	  shell_builtins(1),  getopt(3C),  at-

       getopts prints an error message on the standard error when  it  encoun-
       ters an option letter not included in optstring.

       Although	 the  following	command	syntax rule (see intro(1)) relaxations
       are permitted under the current implementation, they should not be used
       because	they may not be	supported in future releases of	the system. As
       in the EXAMPLES section above, -a and -b	are options, and the option -o
       requires	 an  option-argument.	The following example violates Rule 5:
       options with option-arguments must not be grouped with other options:

       example%	cmd -aboxxx filename

       The following example violates Rule 6: there must be white space	 after
       an option that takes an option-argument:

       example%	cmd -ab	oxxx filename

       Changing	 the  value  of	the shell variable OPTIND or parsing different
       sets of arguments may lead to unexpected	results.

SunOS 5.10			  7 Jan	2000			  getoptcvt(1)


Want to link to this manual page? Use this URL:

home | help