table of contents
LIBBASH(7) | 7 (libbash manual) | 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 ‘
ldbash(1) must answer 4 requirments:
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- 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:For example, internal function myfoosort of hashstash library should be named as__<library_name>_
This helps to avoid conflicts in global name space when using libraries that come from different vendors.__hashstash_myfoosort
- 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)June 7, 2017 | Linux |