Есть проблемы с импортом функций из другого файла.
Первое : вам не нужно делать этот файл исполняемым. Лучше не делать этого! просто добавь
. file
импортировать все функции. И все они будут, как если бы они были определены в вашем файле.
Второе : вы можете определить функцию с тем же именем. Это будет перезаписано. Это плохо. Вы можете заявить, что так
declare -f new_function_name=old_function_name
и только после этого делать импорт. Таким образом, вы можете вызвать старую функцию под новым именем.
Третье : вы можете импортировать только полный список функций, определенных в файле. Если некоторые из них не нужны, вы можете сбросить их. Но если вы переписываете свои функции после сброса, они будут потеряны. Но если вы установите ссылку на него, как описано выше, вы можете восстановить после сброса с тем же именем.
в заключениеВ общем процедура ввоза опасна и не так проста. Быть осторожен! Вы можете написать скрипт, чтобы сделать это более простым и безопасным. Если вы используете только часть функций (не все), лучше разбить их на разные файлы. К сожалению, эта техника не очень хорошо работает в Bash. Например, в python и некоторых других языках сценариев это просто и безопасно. Возможен частичный импорт только необходимых функций со своими именами. Мы все хотим, чтобы в следующих версиях куста была сделана та же функциональность. Но теперь мы должны написать много дополнительных кодов, чтобы делать то, что вы хотите.