In many file system operations we need a description of a file or directory, both to select its attributes and to report meaningful errors to the user of a script. The following API allows us to store such informations into a Bash symbolic array, so that we can use the resulting compound value as single parameter to function calls; See Arrays. In this documentation such arrays will be often referred to as “data structures”.
We can declare a file structure as follows:
mbfl_declare_assoc_array_varref(LOGFILE) mbflutils_file_init_file_struct mbfl_datavar(LOGFILE) \ '/var/log/software.log' 'root' 'root' '0640' 'log file for software'
another example:
function caller () {
mbfl_declare_assoc_array_varref(LOGFILE)
callee mbfl_datavar(LOGFILE)
...
}
function callee () {
mbfl_mandatory_nameref_parameter(LOGFILE, 1, log file data structure)
mbflutils_file_init_file_struct mbfl_datavar(LOGFILE) \
'/var/log/software.log' 'root' 'root' '0640' 'log file for software'
}
Initialise a symbolic array variable as representing the file system pathname and attributes of a file or directory; such array variable is to be used later to install the file or directory, or change its attributes as specified.
The arguments are:
The name of the array variable, which should have been previously declared.
Mandatory parameter. A string representing the file system pathname of the file or directory; it is
stored in the symbolic array with key PATHNAME.
Mandatory parameter. A string representing the description of the file or directory; it is stored
in the symbolic array with key DESCRIPTION. This description is used in verbose and error
messages by printing it with the Bash built–in printf(), using the format specification
‘%b’, so some backslash sequences are expanded; See Bash Builtin Commands.
Optional parameter, defaults to the empty string. A string representing the owner of the file or
directory; it is stored in the symbolic array with key OWNER.
Optional parameter, defaults to the empty string. A string representing the group of the file or
directory; it is stored in the symbolic array with key GROUP.
Optional parameter, defaults to the empty string. A string representing the octal or symbolic mode
of the file or directory; it is stored in the symbolic array with key MODE.
This document describes version 3.0.0-devel.9 of Marcos Bash Functions Library.