通常包含脚本的方式是"source"
eg:
main.sh:
#!/bin/bash
source incl.sh
echo "The main script"
incl.sh:
echo "The included script"
执行“。/main.sh”的结果是:
The included script
The main script
... 现在,如果您试图从另一个位置执行该shell脚本,它将无法找到包含,除非它在您的路径中。
确保脚本能够找到包含脚本的好方法是什么,特别是在脚本需要可移植的情况下?
根据我的说法,脚本包含的合适位置是/usr/local/lib/
/usr/local/lib
与本地安装程序相关联的文件。
我个人更喜欢/usr/local/lib/bash/includes。
有bash-helper库用于以这种方式包含库:
#!/bin/bash
. /usr/local/lib/bash/includes/bash-helpers.sh
include api-client || exit 1 # include shared functions
include mysql-status/query-builder || exit 1 # include script functions
# include script functions with status message
include mysql-status/process-checker; status 'process-checker' $? || exit 1
include mysql-status/nonexists; status 'nonexists' $? || exit 1