1 Overview of the package

This document describes version 3.0.0-devel.9 of MBFL, a collection of libraries of functions for the GNU Bash shell. It requires GNU Bash at least version 4.3; it require GNU m4 (other m4 implementations will not do). The package is distributed under the terms of the GNU Lesser General Public License (LGPL).

This package is an attempt to make GNU Bash a viable solution for medium sized scripts; a set of modules implementing common operations and script templates are offered by this package and the author has used them with success in implementing non–small scripts.

The philosophy of MBFL is to do the work as much as possible without external commands. For example: string manipulation is implemented using the special variable substitution provided by Bash, and no use is done of utilities like sed, grep and ed. Despite that, MBFL really needs the GNU Coreutils package to perform a lot of tasks.

The libraries are better used starting from the template scripts in the examples/ subdirectory of the distribution, especially template.sh and template-actions.sh. This is because, with MBFL, some choices are made to reduce the application–dependent part of the script to the smallest dimension; if we follow another schema, MBFL modules may be inadequate. This is especially true for the actions and options parsing modules.

The installed libraries are:

libmbfl.bash
libmbfl-core.bash

The core library implementing shell language extensions, adaptations and system interface. libmbfl.bash should be a symbolic link to libmbfl-core.bash.

libmbfl-linker.bash

A library to embed into scripts to load other libraries at run–time; Searching and loading libraries at run–time.

libmbfl-tests.bash

A library to organise test suites for shell functions; Building test suites.

libmbfl-utils.bash

A library of utilities, not always required by a script; Utilities library.

libmbfl-at.bash

An interface to the executable at and the daemon atd; Interface to the external program at.

libmbfl-arch.bash

An interface to the common file system archiving and compressing tools; Archiving and compressing files.

libmbfl-passwords.bash

Password strings generation; Generating somewhat random passwords.

libmbfl-git.bash

Basic interface to the version control program git; Version control with git.

libmbfl-containers.bash

Data containers library; Data containers library.

Starting with version 3: this package installs files under directories without the version part. If we desire to install multiple versions of the package: we should install under /opt/mbfl/$VERSION, by using the appropriate command line option at configuration time:

$ ./configure --prefix=/opt/mbfl/3.0.0

This package relies on: GNU m4 for preprocessing scripts; the GNU Coreutils to perform many file system related tasks; the package sudo to perform tasks with modified user privileges.


This document describes version 3.0.0-devel.9 of Marcos Bash Functions Library.