Respostas:
Primeiro no terminal, torne o script executável, digitando:
chmod a+x (yourscriptname)
Em seguida, no Finder, clique com o botão direito do mouse no seu arquivo e selecione "Abrir com" e depois "Outros ...".
Aqui você seleciona o aplicativo no qual deseja executar o arquivo, nesse caso, seria Terminal. Para poder selecionar o terminal, você precisa mudar de "Aplicativos recomendados" para "Todos os aplicativos". (O aplicativo Terminal.app pode ser encontrado na pasta Utilitários)
OBSERVAÇÃO: a menos que você não queira associar todos os arquivos com esta extensão para rodar no terminal, você não deve ter "Always Open With" marcado.
.command
é , por padrão executável a partir do Finder, sem a necessidade de instruir Localizador de como abri-lo.
.command
extensão do arquivo.
Você já tentou usar a .command
extensão do nome do arquivo?
chmod +x
), mas a .command
extensão já está vinculada ao Terminal. Grande solução, obrigado
Desde o OSX 10.10 (Yosemite) e desde pelo menos OS X 10.8 (Mountain Lion) , o comportamento é o seguinte quando você abre (clique duas vezes) scripts executáveis do Finder :
.command
:
Preferences... > Profiles
você pode optar por fechar automaticamente a janela quando o script sair.cd -- "$(dirname "$BASH_SOURCE")"
logo após a linha shebangcd -- "$(dirname "$0")"
,.chmod +x <script>
no Terminal; caso contrário, você verá os seguintes sintomas:.command
: O Finder exibe uma mensagem de erro enganosa que sugere que o problema pode ser corrigido via File > Get Info
, o que não é verdade - use ochmod +x
método sugerido acima.#!/bin/bash
): o comportamento é como se o sufixo fosse .sh
- veja abaixo..sh
, executáveis ou não:
TextEdit.app
ou, se instalado, com Xcode.app
..scpt
ou .applescript
(mesmo se eles próprios estiverem marcados como executáveis, o que normalmente não é o caso):
[Apple]Script Editor
[1] Executável significa: um script com o (s) bit (s) de permissão executável (s) definido (s) e o usuário que está chamando - em relação à propriedade do arquivo - potencialmente sendo permitido executá-lo.
Se você chmod a+x
definir todos os bits de permissão (o que é típico), qualquer pessoa poderá invocá-lo (supondo que eles também tenham permissão para ler o arquivo com base nos bits de permissão de leitura e na propriedade do arquivo).
osascript
você pode incluir no .command
arquivo, em vez de mexer manualmente com o perfil.
osascript -e '...'
comando ao final do script? Qual é o comando específico e garante que a guia direita seja fechada mesmo quando o script não estiver em execução na guia mais à frente?
osascript -e 'tell application "Terminal" to close front window' > /dev/null 2>&1 &
... Pode não funcionar em todos os cenários, embora o redirecionamento no end é realmente a chave - o osascript pode ser adaptado facilmente (por exemplo, a janela pode precisar ser alterada para tab se esse for o seu comportamento padrão do terminal, etc.).
.command
execução do arquivo de script, apesar da configuração do perfil?
bash
script, adicione read -p 'Press Return to close this window.'
como a última declaração.
Como alternativa, você pode criar um aplicativo Mac OS X comum a partir do seu script usando Platypus
A maneira mais fácil é alterar a extensão para .command
ou nenhuma extensão.
Mas isso abrirá o Terminal e você terá que fechá-lo. Se você não quiser ver nenhuma saída, use o Automator para criar um aplicativo para Mac, clique duas vezes, adicione à estação, etc.
Automator
aplicaçãoRun
botão no canto superior direito para testá-lo.File > Save
para criar o aplicativo.Não há necessidade de usar aplicativos de terceiros, como o Platypus.
Basta criar um Apple Script com o Editor de scripts e usar o comando do shell script "shell commands"
para chamadas de comando diretas ou arquivos de script de shell executável, manter o arquivo de script editável seguro em algum lugar e exportá-lo para criar um script de aplicativo. o script do aplicativo pode ser iniciado com um clique duplo ou a seleção na pasta da barra.
Você também pode definir padrões por extensão de arquivo usando RCDefaultApp:
http://www.rubicode.com/Software/RCDefaultApp/
potencialmente você pode configurar .sh para abrir no iTerm / Terminal etc., precisaria de permissões de execução do usuário, por exemplo
chmod u+x filename.sh