Shell 脚本 Mac OS X App:获取其路径

Shell 脚本 Mac OS X App:获取其路径

在 Mac OS X 中,从 shell 脚本应用程序的角度来看,如何获取其捆绑目录路径以用于 shell 脚本? 使用 env 命令时,它返回应用程序的执行路径是 /,并且没有环境变量有帮助。我这样做是因为我想访问包的一些资源,并且因为应用程序并不总是安装在 /Applications 中。

谢谢!

答案1

DIR=$(cd "$(dirname "$0")"; pwd)将给出 shell 脚本的目录名称。对于 shell 脚本应用程序,这将是/path/to/Your shell script application.app/Contents/MacOS

答案2

我建议尝试一下which,但它不适用于 Mac 应用程序。您可以使用寻找,请记住,Mac 应用程序是捆绑的,并且 shell 将它们视为目录。不要忘记添加应用程序的扩展名 (.app)。

答案3

如果您可以获取应用程序的可执行文件的绝对路径,那么获取包目录就很简单了,只需在其后附加 /../.. 即可获取主包。但是,如果您想要资源,只需将其添加到上面的 /Resources 即可。

答案4

编辑:你想要的东西与我原来的答案完全不同。保留它以防对任何人有用。现在我认为你正在寻找命令basename,虽然我仍然不确定,我认为你需要指定更多关于你正在做的事情的信息,然后我们才能给你一个合适的答案。

我不确定我是否理解了这个问题。您是否尝试找到应用程序目录?例如,对于计算器,您想要计算器.app 所在的目录?

jed@jed-osx:~$ ls -la /Applications/Calculator.app/
total 0
drwxr-xr-x   3 root  wheel   102 Jun 22 11:27 .
drwxrwxr-x+ 46 root  admin  1564 Jun 18 23:19 ..
drwxr-xr-x  10 root  wheel   340 Jun 22 11:26 Contents

jed@jed-osx:~$ ls -la /Applications/Calculator.app/Contents/
total 8
drwxr-xr-x  10 root  wheel   340 Jun 22 11:26 .
drwxr-xr-x   3 root  wheel   102 Jun 22 11:27 ..
lrwxr-xr-x   1 root  wheel    28 Apr 17 15:15 CodeResources -> _CodeSignature/CodeResources
-rw-r--r--   1 root  wheel  1201 May  6 10:26 Info.plist
drwxr-xr-x   3 root  wheel   102 Jun 22 11:26 MacOS
-rw-r--r--   1 root  wheel     8 Jul  6  2009 PkgInfo
drwxr-xr-x   4 root  wheel   136 Jul  6  2009 PlugIns
drwxr-xr-x  42 root  wheel  1428 Apr 17 15:28 Resources
drwxr-xr-x   3 root  wheel   102 Jun 22 11:26 _CodeSignature
-rw-r--r--   1 root  wheel   451 May  6 10:27 version.plist

或者您正在寻找一些完全不同的东西?

相关内容