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:
-
It must be installed in $LIBBASH_PREFIX/lib/bash (default is /usr/lib/bash).
-
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.
-
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.
-
The library must be listed (For more information, see ldbashconfig(8)).
Basic guidelines for writing library of your own:
-
Be aware, that your library will be actually sourced. So, basically, it should contain (i.e define) only functions.
-
Try to declare all variables intended for internal use as local.
-
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.
-
See html manual for full version of this guide.
AUTHORS
Hai Zaar ⟨[email protected]⟩ Gil Ran ⟨[email protected]⟩
SEE ALSO
ldbash(1), ldbashconfig(8), getopts(1), hashstash(1) colors(1) messages(1) urlcoding(1) locks(1)