Shell

如何從另一個路徑執行腳本,並知道腳本的路徑?

  • March 30, 2011

我需要執行一個腳本來訪問文件所在路徑中的文件。

例如:我有腳本/home/me/folder/script.sh,這個腳本將訪問文件/home/me/folder/myfile。由於文件位於腳本的同一路徑中,我只使用 name myfile,而不是完整路徑。

但是,如果我從 執行它/tmp/,例如:

/tmp$ /home/me/folder/script.sh

它給了我:

myfile: No such file or directory

那麼,我怎麼能在腳本中說文件與腳本本身在同一路徑中呢?

怎麼樣$(dirname "$0")/myfile

您無法在所有情況下都知道,但通常(並非總是)當您通過路徑而不是讓 shell search 執行腳本時,腳本的路徑$PATH將在$0. 然後,您可以使用dirname "$0"${0%/*}獲取路徑。

引用自:https://unix.stackexchange.com/questions/10291