Man Linux: Main Page and Category List

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,
            basically, 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

SEE ALSO

     ldbash(1), ldbashconfig(8), getopts(1), hashstash(1) colors(1)
     messages(1) urlcoding(1) locks(1)