The main
module contains, at the root level, a block of code like
the following:
declare -i ARGC=0 ARGC1=0 ARG1ST=0 declare -a ARGV ARGV1 for ((ARGC1=0; $# > 0; ++ARGC1)) do ARGV1[$ARGC1]=$1 shift done
this block is executed when MBFL (and the script that loads it) is
evaluated. Its purpose is to store command line arguments in the global
array ARGV1
and the number of command line arguments in the
global variable ARGC1
; the variable ARG1ST
references the
next argument in ARGV1
that must be processed.
The global array ARGV
and the global variable ARGC
are
predefined and should be used by the mbfl_getopts_*
functions to
store non–option command line arguments. Processing performed by the
getopts
module must happen after processing performed by the
actions
module.
Example:
$ script --gulp wo --gasp=123 wa
if the script makes use of MBFL, the strings wo
and wa
will go into ARGV
and ARGC
will be set to 2. The option
arguments are processed and some action is performed to register them.
We can access the non–option arguments with the following code:
for ((i=0; $i < $ARGC; ++i)) do # do something with ${ARGV[$i]} done
When using the actions
module: the first arguments can be
interpreted as special values that select an action to be performed by
the script; in such case the first argument is removed from the
ARGV
array, so that processing the other arguments is not
affected. Introduction to action trees.
This document describes version 3.0.0-devel.9 of Marcos Bash Functions Library.