1
我有一个终端shell脚本文件start.command
,我从取景器启动与:是否可以执行相对于终端shell脚本的命令?
ls -l
该文件是~/foo
但名单~
,我可以得到它包含目录的路径。我想在用户运行.command
时启动与文件位于同一文件夹中的应用程序,但似乎需要该文件的绝对路径才能工作。
我有一个终端shell脚本文件start.command
,我从取景器启动与:是否可以执行相对于终端shell脚本的命令?
ls -l
该文件是~/foo
但名单~
,我可以得到它包含目录的路径。我想在用户运行.command
时启动与文件位于同一文件夹中的应用程序,但似乎需要该文件的绝对路径才能工作。
假设bash,在运行ls
之前,您需要将cd
添加到脚本的封闭目录中。
你可以用这个单行它:
cd "$(dirname "$0")"
$0
是无论你在命令行上用来调用它的脚本的相对路径,即。 dirname
从路径中剥离文件名。
$()
是一个值扩展到cd
,并且引号都是必要的,以处理路径中的空格。
太棒了!感谢这个提示! – jsherk 2012-07-23 03:48:00