2012-02-13 26 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

相关问题