libbash(7)
NAME
libbash -- A bash shared libraries package.
DESCRIPTION
libbash is a package that enables bash dynamic-like shared libraries.
Actually its a tool for managing bash scripts whose functions you may
want to load and use in scripts of your own.
It contains a 'dynamic loader' for the shared libraries ( ldbash(1)), a
configuration tool (ldbashconfig(8)), and some libraries.
Using ldbash(1) you are able to load loadable bash libraries, such as
getopts(1) and hashstash(1). A bash shared library that can be loaded
using
ldbash(1) must answer 4 requirments:
- 1. It must be installed in $LIBBASH_PREFIX/lib/bash (default is
- /usr/lib/bash).
- 2. It must contain a line that begins with '#EXPORT='. That line
will contain (after the '=') a list of functions that the library exports. I.e. all the function that will be usable after loading that library will be listed in that line. - 3. It must contain a line that begins with '#REQUIRE='. That line
will contain (after the '=') a list of bash libraries that are
required for our library. I.e. every bash library that is in use in our bash library must be listed there. - 4. The library must be listed (For more information, see
ldbashconfig(8)). - Basic guidelines for writing library of your own:1. Be aware, that your library will be actually sourced. So, basi
cally, it should contain (i.e define) only functions. - 2. Try to declare all variables intended for internal use as local.
- 3. Global variables and functions that are intended for internal use
(i.e are not defined in '#EXPORT=') should begin with:
__<library_name>_ - For example, internal function myfoosort of hashstash library
should be named as
__hashstash_myfoosort - This helps to avoid conflicts in global name space when using
libraries that come from different vendors. - 4. See html manual for full version of this guide.
AUTHORS
Hai Zaar <haizaar@haizaar.com>
Gil Ran <ril@ran4.net>