Bash命令在不同目录中获取文件?

the*_*fog 9 bash

我有一组 bash 脚本,我想将一些常见的 shell 选项和变量声明放入“setup.sh”脚本中,该脚本将在每个脚本的开头获取。
我的目录结构是这样的:

??? includes
?   ??? setup.sh
?
??? server_config
    ??? build_server_core.sh
    ??? install_fail2ban.sh
Run Code Online (Sandbox Code Playgroud)

因为脚本可能在不同的计算机/环境中运行,所以我不能简单地使用硬编码的路径 setup.sh

是否有source针对与正在运行的脚本不同目录中的脚本的单行命令?

mic*_*has 14

首先获取脚本本身的目录,然后使用这样的相对路径:

DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
source "$DIR/../includes/setup.sh"
Run Code Online (Sandbox Code Playgroud)

有关查找正确目录的更多信息,查看/sf/ask/4192681/