可能重复:
bash 脚本获取自身完整路径的可靠方法?
我有 bash 脚本test.sh,它通过以下几行使用另一个search.sh脚本中的函数:
source ../scripts/search.sh
<call some functions from search.sh>
这两个脚本都位于 git 存储库中。search.sh在<git_root>/scripts/目录中,test.sh位于同一目录中(但一般来说,可以位于<git_root>目录内的任何位置 - 我的意思是我不能依赖以下source search.sh方法)。
当我从一切正常调用test.sh脚本时<git_root>/scripts/,但只要我更改当前工作目录test.sh就会失败:
cd <git_root>/scripts/
./test.sh //OK
cd ..
./scripts/test.sh //FAILS
./scripts/test.sh: line 1: ../scripts/search.sh: No file or directory ...
因此我所拥有的:
search.sh脚本到<git_root>目录的相对路径
我想要什么:能够test.sh从内部任何地方运行<git_root>而不会出错。
PS:无法使用永久绝对路径,search.sh因为 git 存储库可以克隆到任何位置。