次の行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 リポジトリは任意の場所に複製できるため、永続的な絶対パスを使用することはできません。