努力在脚本内设置独立路径来调用另一个脚本

努力在脚本内设置独立路径来调用另一个脚本

以下文件位于某个目录中:

path/to/file.sh
path/to/file2.sh

file2.sh内部调用的工作原理file.sh如下:

path/to/file.sh
. ./path/to/file2.sh

但是当文件在另一个目录中签出时:

src/path/to/file.sh
src/path/to/file2.sh

file.sh 找不到 file2 了

可能的解决方案

一种可能是检查某个目录是否存在

path/to/file.sh

if [ -d "src" ]; then
  . $PWD/src/path/to/file2.sh
else
  . $PWD/path/to/file2.sh
fi

但是当在另一个目录中检出文件时,这将再次中断。

问题

什么解决方案将独立于目录结构工作?

答案1

source "$(dirname -- "$0")/file2.sh"

源代码file2.sh位于与调用脚本相同的目录中。

相关内容