次の行test.shで別のスクリプトの関数を使用するbashスクリプトがあります。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 リポジトリは任意の場所に複製できるため、永続的な絶対パスを使用することはできません。