Было бы достаточно создать файл сценария, содержащий такие функции вашего фреймворка, как этот:
/tmp/framework.sh
# Define a serie of functions of your framework...
function framework_function_1() {
echo "function 1 executed"
}
function framework_function_2() {
echo "function 2 executed"
}
# And put here anything you want to be executed right away (like the trap)
echo "framework.sh was executed"
Затем включите его в остальные скрипты, как здесь:
/tmp/b.sh
# Include the framework:
. /tmp/framework.sh
echo "Script b.sh was executed"
# Calling a framework's function
framework_function_2
При этом выполнение b.sh (и любого другого скрипта, включая framework.sh ), будет похоже на:
$ /tmp/b.sh
framework.sh was executed
Script b.sh was executed
function 2 executed
Обратите внимание, что . /tmp/framework.sh
совпадает с source /tmp/framework.sh
.
Я рекомендую взглянуть на этот вопрос . Выбранный ответ очень тщательный. Чтобы переменная сохранялась, вам нужно использовать функцию export
, поскольку ваше текущее замедление ограничено контекстом скрипта.
Изменить install.sh
на:
export FOO=BAR
Тогда вместо ./install.sh
можно попробовать. install.sh