Script de shell Mac OS X App: obtenha seu caminho

6

No Mac OS X, do ponto de vista de um aplicativo de script de shell, como posso obter seu caminho de diretório de pacote para uso em um script de shell ? Ao usar o comando env, ele retorna que o caminho de execução do aplicativo é / e nenhuma variável de ambiente ajuda. Estou fazendo isso porque gostaria de acessar alguns recursos do pacote e porque o aplicativo nem sempre é instalado em / Applications.

Obrigado!

    
por moala 24.06.2010 / 11:07

4 respostas

6

DIR=$(cd "$(dirname "$0")"; pwd) fornecerá o nome do diretório do script de shell. Para um aplicativo de script de shell, isso será /path/to/Your shell script application.app/Contents/MacOS .

    
por 08.12.2010 / 19:20
1

Eu estava sugerindo tentar which , mas não funciona para aplicativos do Mac. Você pode usar localizar , lembrando que os aplicativos do Mac são empacotados e um shell os vê como diretório. Não esqueça de adicionar a extensão para aplicativos (.app).

    
por 24.06.2010 / 14:17
1

Se você puder obter o caminho absoluto do aplicativo para o executável, obter o diretório do pacote é tão simples quanto acrescentar que com /../ .. você obtém o pacote principal. Se você quiser os recursos no entanto, basta adicionar ao acima / Recursos.

    
por 25.06.2010 / 00:15
0

Edit: Você quer algo completamente diferente da minha resposta original. Mantê-lo abaixo, caso seja útil para qualquer pessoa. Agora eu acho que você está procurando o comando basename , embora eu ainda não esteja certo e eu acho que você precisará especificar mais informações sobre o que você está fazendo antes de podermos dar uma resposta decente. / p>

Não sei se entendi a pergunta. Você está tentando localizar o diretório do aplicativo? Por exemplo. para a Calculadora, você quer o diretório em que o Calculator.app está?

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

Ou você está procurando algo completamente diferente?

    
por 24.06.2010 / 11:23