Сценарий оболочки Mac OS X App: получить свой путь
В Mac OS X, с точки зрения приложения сценария оболочки, как я могу получить путь к каталогу пакета для использования в сценарии оболочки? При использовании команды env возвращается, что путь выполнения приложения - /, и никакая переменная среды не помогает. Я делаю это потому, что хотел бы получить доступ к некоторым ресурсам пакета, а также потому, что приложение не всегда устанавливается в /Applications.
Спасибо!
4 ответа
DIR=$(cd "$(dirname "$0")"; pwd)
даст имя каталога сценария оболочки. Для приложения сценария оболочки это будет /path/to/Your shell script application.app/Contents/MacOS
,
Я предлагал попробовать which
, но это не работает для приложений Mac. Вы можете использовать find, имея в виду, что приложения Mac связаны, и оболочка видит их как каталог. Не забудьте добавить расширение для приложений (.app).
Если вы можете получить абсолютный путь приложения к исполняемому файлу, получить dir комплекта так же просто, как добавить его с помощью /../.., чтобы получить основной комплект. Однако, если вы хотите получить ресурсы, просто добавьте к вышеприведенному / Ресурсы.
Изменить: Вы хотите что-то совершенно другое, чем мой первоначальный ответ. Держите это ниже на случай, если это будет полезно для всех. Теперь я думаю, что вы ищете basename
команда, хотя я все еще не уверен, и я думаю, что вам нужно будет указать больше информации о том, что вы делаете, прежде чем мы сможем дать вам достойный ответ.
Я не уверен, что понимаю вопрос. Вы пытаетесь найти каталог приложения? Например, для калькулятора, вы хотите каталог, в котором находится Calculator.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
Или вы ищете что-то совершенно другое?