**** начал я конечно не с того, ну-да-ладно ***
Не знаю как остальные линуксойды, а я модули в bash никогда не использовал, хотя и знал что их можно подключать с помошью оператора "." (точка). К слову, у этого оператора есть псевдоним, или аналог - оператор "source".
И так, пример. Создадим пару файлов:
$ cat > unit
#!/bin/bash
{
echo "Привет мир"
}
^D
$ cat > main_file
#!/bin/bash
{
source ./unit
}
^D
после делаем оба файла исполняемыми:
$ chmod +x unit main_file
и наконец запустим "main_file":
$ ./main_file
Мы увидим выеденную на консоль "Hello World". Но фокус не в этом. Тоже самое мы могли делать с помощью двух bash-файлов без всяких там хитростей. Что-же такого в этих модулях? А дело в том, что модули и основные скрипты имеют общее пространство имен переменных и функций. Вот переработанный мною пример из ЛОРа:
$ cat > lib
#!/bin/bash
function h ()
{
echo $hello
}
^D
$ cat > main
#!/bin/bash
source ./lib
{
hello="Hello World"
h
}
^D
Делаем файлы запускаемыми:
$ chmod +x lib main
и наконец запустим "main":
$ ./main
Скрипт вызовет функцию из файла lib, и тот выдаст на экран значение ранее описанной переменной. Правда удобно? Это все глупый пример, но на основе него можно делать много чего интересного. Кроме этого в сам "source" можно подставлять имена модулей используя для этого переменные, и фантазия нас уводит уж совсем далеко, ведь теперь модули меняются как перчатки :-)