Additions:
if -i is specified then all options in the ignore optstring are ignored and not output in the result.
Additions:
||i,ignore optstring||Option string to ignore||
If -p is specified then an additional optstring is used as a "pass through". All arguments which match the passthrough optstring are serialized as is and remaining arguments are ignored. This is useful for a command to 'pass through' known arguments to another command.
If -p is specified then an additional optstring is used as a "pass through". All arguments which match the passthrough optstring are serialized as is and remaining arguments are ignored. This is useful for a command to 'pass through' known arguments to another command.
Deletions:
Additions:
===Required Options===
Note that there is no concept of "required" options. Its up to the application to check if options are supplied.
====Passthrough Options====
Using -p passthrough-options allows xgetops to parse an argument list only evalutating the passthrough-options and ignoring the main options.
This is useful in modules or scripts that implement a common set of options by another script or command but extend those options or get at the list of non-option arguments.
Example from the implementation of [[MarkLogicGet MarkLogic get]] command
_opts=$<(xgetopts -a -p "c=connect:,t=text" -ps -- "$@")
shift $?
for uri ; do
:query $_opts -q "doc(\"$uri\")"
done
This collects all optional options used by the [[MarkLogicQuery MarkLogic query]] command (-c,-t) into the _opts variable as a sequence, then sets $* to the remaining options.
The -a option causes xgetopts to exit with a return status of the first non-option arguement so the "shift $?" will discard all option arguments leaving the remaining args in $*.
The [[MarkLogicQuery :query]] command is then passed any -c or -t option specified
Note that there is no concept of "required" options. Its up to the application to check if options are supplied.
====Passthrough Options====
Using -p passthrough-options allows xgetops to parse an argument list only evalutating the passthrough-options and ignoring the main options.
This is useful in modules or scripts that implement a common set of options by another script or command but extend those options or get at the list of non-option arguments.
Example from the implementation of [[MarkLogicGet MarkLogic get]] command
_opts=$<(xgetopts -a -p "c=connect:,t=text" -ps -- "$@")
shift $?
for uri ; do
:query $_opts -q "doc(\"$uri\")"
done
This collects all optional options used by the [[MarkLogicQuery MarkLogic query]] command (-c,-t) into the _opts variable as a sequence, then sets $* to the remaining options.
The -a option causes xgetopts to exit with a return status of the first non-option arguement so the "shift $?" will discard all option arguments leaving the remaining args in $*.
The [[MarkLogicQuery :query]] command is then passed any -c or -t option specified
Deletions:
Deletions:
echo Phase is ${phase}**
Additions:
phase=<[ $args/xgetopts/options/option[@name='p']/value/text()]>
**phase=<[ $args/xgetopts/options/option[@name='p']/value/text()]>
argcount=<[ count($args/xgetopts/options/option)]>
**phase=<[ $args/xgetopts/options/option[@name='p']/value/text()]>
argcount=<[ count($args/xgetopts/options/option)]>
Deletions:
**phase= <[ $args/xgetopts/options/option[@name='p']/value/text()]>
argcount= <[ count($args/xgetopts/options/option)]>
Additions:
===Argument count===
From the above example, to retrieve the count of options
argcount= <[ count($args/xgetopts/options/option)]>
echo $argcount args
So note that omitted, required arguments don't produce any exception
From the above example, to retrieve the count of options
argcount= <[ count($args/xgetopts/options/option)]>
echo $argcount args
So note that omitted, required arguments don't produce any exception
Additions:
**xgetopts "p:,o:,d:+" $* >{args} ** says that the p, o and d parameters are required and come from the command line. the output is put into the 'args' variable.
**phase= <[ $args/xgetopts/options/option[@name='p']/value/text()]>
echo Phase is ${phase}**
**phase= <[ $args/xgetopts/options/option[@name='p']/value/text()]>
echo Phase is ${phase}**
Deletions:
Revision [1371]
Edited on 2010-05-11 04:21:48 by DavePawson [amended options->optstring, added example]Additions:
xgetopts [optstring] [--] args
From within a script:
xgetopts "p:,o:,d:+" $* >{args}
echo $args
phase= <[ $args/xgetopts/options/option[@name='p']/value/text()]>
echo Phase is ${phase}
shows as
<option name="p">
<value>phase1</value>
<option name="o">
<value>test.xml</value>
<option name="d">
<value>dir1</value>
<value>dir2</value>
<args/>
Phase is phase1
xgetopts "p:,o:,d:+" $* >{args} says that the p, o and d parameters are required and come from the command line. the output is put into the 'args' variable.
phase= <[ $args/xgetopts/options/option[@name='p']/value/text()]>
echo Phase is ${phase}
These lines extract the value of the p option and echo it to stdout.
From within a script:
xgetopts "p:,o:,d:+" $* >{args}
echo $args
phase= <[ $args/xgetopts/options/option[@name='p']/value/text()]>
echo Phase is ${phase}
shows as
<option name="p">
<value>phase1</value>
<option name="o">
<value>test.xml</value>
<option name="d">
<value>dir1</value>
<value>dir2</value>
<args/>
Phase is phase1
xgetopts "p:,o:,d:+" $* >{args} says that the p, o and d parameters are required and come from the command line. the output is put into the 'args' variable.
phase= <[ $args/xgetopts/options/option[@name='p']/value/text()]>
echo Phase is ${phase}
These lines extract the value of the p option and echo it to stdout.
Deletions:
Additions:
xgetopts runs the internal shell command option processor (Options) and emits the result as an XML document.
Deletions:
Additions:
if -a is specified then the exit code is the relative position of the first non-option argument. This allows options to be parsed then remaining arguments shifted into $1 ... $N by using "shift $?"
Additions:
||a,argindex||Exit with argument index||
Additions:
||[+]ps=pass-serialize||Add (+ do not add) standard serialization options to passthrough||
Deletions:
Additions:
xgetopts [options] [--] args
||o,optdef optstring||Option string||
||c,command cmdname||Command name||
||p,passthrough optstring||pass through options||
||[+]s,serialize||Add (+ do not add) standard serialization options to optstring||
||[+]ps=pass-serialize||Add (+do not add) standard serialization options to passthrough||
||noargs||Do no output additional arguments||
||novalues||Do not output argument values||
args 0 or more arguments to be parsed using the optstring, typically $*
If no -o or -p is given then the first argument is the optstring.
If -p is specified then an additional optstring (which should be a subset of the main optstring) is used as a "pass through". All arguments which match the passthrough optstring are serialized as is and remaining arguments are ignored. This is useful for a command to 'pass through' known arguments to another command.
if -novalues is specified then the character content of values are not output. This is useful for parameters which are not serializable or may be very large.
if -noargs is specified then the args element is omitted.
||o,optdef optstring||Option string||
||c,command cmdname||Command name||
||p,passthrough optstring||pass through options||
||[+]s,serialize||Add (+ do not add) standard serialization options to optstring||
||[+]ps=pass-serialize||Add (+do not add) standard serialization options to passthrough||
||noargs||Do no output additional arguments||
||novalues||Do not output argument values||
args 0 or more arguments to be parsed using the optstring, typically $*
If no -o or -p is given then the first argument is the optstring.
If -p is specified then an additional optstring (which should be a subset of the main optstring) is used as a "pass through". All arguments which match the passthrough optstring are serialized as is and remaining arguments are ignored. This is useful for a command to 'pass through' known arguments to another command.
if -novalues is specified then the character content of values are not output. This is useful for parameters which are not serializable or may be very large.
if -noargs is specified then the args element is omitted.
Deletions:
o=optdef:,c=command:,p=passthrough:,+s=seralize,+ps=pass-serialize,noargs,novalues
||foo||
args 0 or more arguments to be parsed using the optstring, typically $*
Additions:
xgetopts [options]
====Options====
o=optdef:,c=command:,p=passthrough:,+s=seralize,+ps=pass-serialize,noargs,novalues
||foo||
====Options====
o=optdef:,c=command:,p=passthrough:,+s=seralize,+ps=pass-serialize,noargs,novalues
||foo||
Deletions:
Additions:
[[Commands]]
Additions:
====Examples====
Example
xgetopts "a=all,b:,c:+" -all -c c1 -c c2 arg1 arg2
Result
Example
xgetopts "a=all,b:,c:+" -all -c c1 -c c2 arg1 arg2
Result
Deletions:
$ xgetopts "a=all,b:,c:+" -all -c c1 -c c2 arg1 arg2
Deletions:
Additions:
====Synopsis====
xgetopts optstring [args]
====Description====
===optstring===
xgetopts optstring [args]
====Description====
===optstring===
Deletions:
====optstring====
Additions:
======Command xgetopts======
====Name====
**xgetopts** parses command line options
====Name====
**xgetopts** parses command line options
Additions:
----
[[CategoryCommands]]
[[CommandsInternal]]
[[CategoryCommands]]
[[CommandsInternal]]
No Differences