我有一個project/bin/
不包含在PATH
中的目錄。它包含 二進制文件project/bin/one
和project/bin/two
。在bash腳本中包含來自相對路徑的二進制文件
bash腳本位於project/shell/script1/run.sh
。現在,我想使用project/shell/script1/run.sh
腳本中的project/bin
文件夾中的二進制文件。我想要一個全局腳本,可以是source
d,並自動包含這些二進制文件。
所以,我創建了一個腳本project/bin/load_bin
:
#!/usr/bin/env bash
$local_bin_one='./one'
$local_bin_two='./two'
在我project/shell/script1/run.sh
我執行腳本:
#!/usr/bin/env bash
source '../../bin/load_bin'
但是,當我嘗試使用$local_bin_one
,我得到錯誤未找到文件。這是因爲$local_bin_one
指向./one
而不是../../bin/one
。
問題:如何從project/bin/load_bin
腳本本身找到正在調用source '../../bin/load_bin'
的腳本的路徑?
謝謝。但是我的問題是,我不知道'load_bin'腳本中,「source」$ mydir /../../ bin/load_bin「'的調用者是誰。如果我執行'dirname',它只會顯示'.',因爲源代碼會將代碼粘貼到調用腳本中。 – Kiril 2014-10-28 12:16:35
在這種情況下,我認爲你應該在給它一個環境變量之前設置一個很好理解的「根」,比如'load_bin'所在的目錄。 – 2014-10-28 13:16:40