Shell Script Loader is a framework (in a helper script) that can be used by shell script based applications for easy including or loading of co-shell-scripts or subscripts. With this utility scripters may now be able to apply multi-file or module-oriented scripting or programming in shells just like the way they are always done in known languages like Perl, PHP and Ruby.
There are many benefits with using module-oriented programming like code sharing, portability, modularity, easy revisioning and restructuring, and reusability.
Design and Coding
The tool has been designed with simplicity, consistency, effectivity and efficiency in mind (both for runtime and coding). Its features were carefully chosen so that they will neither be more nor less than required.
When its scripts were still being made, it was always made sure that the codes and logic flow are always in uniform. Strict coding design is always followed. When a part of the code is modified, it is made sure that no other part use methods that act in a different manner even if both make outputs that are just the same; thereby deciding the most optimum and effective solution that an implementation script can make out of the features that the target shell can provide.
Full support is available to many shells which includes the major shells bash, ksh, pdksh and zsh – provided with optimized scripts for each one of them; and other shells that are derived from bourne shell like ash, dash, heirloom sh, etc., through a universal script that automatically optimizes its functions depending on the features the shell can provide. The universal script is also optimized for bash, ksh and zsh so one may also consider it as just a general optimized script for the whole family of shells that were derived from bourne shell.
Shell Script Loader has two supported versions: the Base version (0), and the Extended version (0X).
The base version includes the most basic functions that may be required for implementing modular scripting. This includes
The extended version contains all the functions of the base version with added extended functions, namely
callx(). These functions function basically the same as the simpler ones but are also capable of loading more than one file per single call through glob patterns or regular expressions.