6

В Mac OS X, с точки зрения приложения сценария оболочки, как я могу получить путь к каталогу пакета для использования в сценарии оболочки? При использовании команды env возвращается, что путь выполнения приложения - /, и никакая переменная среды не помогает. Я делаю это потому, что хотел бы получить доступ к некоторым ресурсам пакета, а также потому, что приложение не всегда устанавливается в /Applications.

Спасибо!

4 ответа4

6

DIR=$(cd "$(dirname "$0")"; pwd) даст имя каталога сценария оболочки. Для приложения сценария оболочки это будет /path/to/Your shell script application.app/Contents/MacOS .

1

Я предлагал попробовать which , но это не работает для приложений Mac. Вы можете использовать find , имея в виду, что приложения Mac связаны, и оболочка видит их как каталог. Не забудьте добавить расширение для приложений (.app).

1

Если вы можете получить абсолютный путь приложения к исполняемому файлу, получить dir пакета так же просто, как добавить его с помощью /../.. который получает вам основной комплект. Однако если вы хотите получить ресурсы, просто добавьте к вышеприведенному разделу /Ресурсы.

0

Изменить: Вы хотите что-то совершенно другое, чем мой первоначальный ответ. Держите его ниже на тот случай, если он кому-нибудь пригодится. Теперь я думаю, что вы ищете команду 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

Или вы ищете что-то совершенно другое?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .