2012-02-13 75 views
1

我有一個終端shell腳本文件start.command,我從取景器啓動與:是否可以執行相對於終端shell腳本的命令?

ls -l 

該文件是~/foo但名單~,我可以得到它包含目錄的路徑。我想在用戶運行.command時啓動與文件位於同一文件夾中的應用程序,但似乎需要該文件的絕對路徑才能工作。

回答

4

假設bash,在運行ls之前,您需要將cd添加到腳本的封閉目錄中。

你可以用這個單行它:

cd "$(dirname "$0")" 

$0是無論你在命令行上用來調用它的腳本的相對路徑,即。 dirname從路徑中剝離文件名。

$()是一個值擴展到cd,並且引號都是必要的,以處理路徑中的空格。

+0

太棒了!感謝這個提示! – jsherk 2012-07-23 03:48:00