DIR=$(cd "$(dirname "$0")"; pwd)
даст имя каталога сценария оболочки. Для приложения сценария оболочки это будет /path/to/Your shell script application.app/Contents/MacOS
.
Сценарий оболочки Mac OS X App: получить свой путь
В Mac OS X, с точки зрения приложения сценария оболочки, как я могу получить путь к каталогу пакета для использования в сценарии оболочки ? При использовании команды env возвращается, что путь выполнения приложения - /, и никакая переменная среды не помогает. Я делаю это потому, что хотел бы получить доступ к некоторым ресурсам пакета, а также потому, что приложение не всегда устанавливается в / Applications.
Спасибо!
4 ответа на вопрос
- Популярные
- Новые
- С комментариями
- Активные
Я предлагал попробовать 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
Или вы ищете что-то совершенно другое?
Похожие вопросы
-
3
Ускорение загрузки OS X на годичной MBP
-
3
Как повторно связать резервную копию Airport Time Machine после перехода на новый Mac?
-
6
Как вы отключите звук запуска на Mac?
-
-
5
Почему мой Macbook сильно нагревается при использовании Boot Camp?
-
7
Есть ли в Mac OS X эквивалент Ctrl + Tab?
-
6
Способ переноса данных Time Machine на новый диск
-
13
Сброс положения Mac OS X Windows после отсоединения внешнего монитора
-
10
Программное обеспечение для резервного копирования для Mac OS X
-
5
Как удалить и удалить .kext в Mac OS X?
-
4
Как переназначить клавишу извлечения на клавиатуре MacBook, чтобы «удалить»?