| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The following commands are approximately all that is needed to build a shell script command line option parser from an option definition file:
autogen -L <opt-template-dir> test-errors.def
cc -o test-errors -L <opt-lib-dir> -I <opt-include-dir> \
-DTEST_PROGRAM_OPTS test-errors.c -lopts
|
The resulting program can then be used within your shell script as follows:
eval `./test-errors "$@"`
if [ -z "${OPTION_CT}" ] ; then exit 1 ; fi
test ${OPTION_CT} -gt 0 && shift ${OPTION_CT}
|
Here is the usage output example from AutoOpts error handling tests. The option definition has argument reordering enabled:
test_errors - Test AutoOpts for errors
USAGE: errors [ -<flag> [<val>] | --<name>[{=| }<val>] ]... arg ...
Flg Arg Option-Name Description
-o no option The option option descrip
-s Str second The second option descrip
- may appear up to 10 times
-X no another Another option descrip
- may appear up to 5 times
-? no help Display usage information and exit
-! no more-help Extended usage information passed thru pager
-> opt save-opts Save the option state to a config file
-< Str load-opts Load options from a config file
- disabled as --no-load-opts
- may appear multiple times
Options are specified by doubled hyphens and their name
or by a single hyphen and the flag character.
Operands and options may be intermixed. They will be reordered.
The following option preset mechanisms are supported:
- reading file errorsRC
|
Using the invocation,
test-errors operand1 -s first operand2 -X -- -s operand3 |
you get the following output for your shell script to evaluate:
OPTION_CT=4 export OPTION_CT TEST_ERRORS_SECOND='first' export TEST_ERRORS_SECOND TEST_ERRORS_ANOTHER=1 # 0x1 export TEST_ERRORS_ANOTHER set -- 'operand1' 'operand2' '-s' 'operand3' OPTION_CT=0 |
This document was generated by Bruce Korb on April, 9 2006 using texi2html 1.76.