Проблема: я хотел, чтобы файл моего сценария оболочки был короче, поэтому я надеялся перенести некоторые функции в другой файл.
Решение: Этот фрагмент кода оболочки позволил мне загрузить функции, определенные в отдельном файле:
SRC_DIR=$(cd "$(dirname $0)"; pwd -P) . $SRC_DIR/scripts/functions.sh # functions defined in this external file
Примечания: Это также помогает при рефакторинге, поскольку вам нужно изменить код оболочки только в одном месте.
Я использовал:
SRC_DIR=$(readlink -f ${0%/*}) . $SRC_DIR/scripts/functions.sh
но readlink -f
не работает в оболочке Mac OS X/BSD.
Использованная литература: