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.
.commandextensão do arquivo.
Você já tentou usar a .commandextensão do nome do arquivo?
chmod +x), mas a .commandextensã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... > Profilesvocê 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.appou, 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+xdefinir 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).
osascriptvocê pode incluir no .commandarquivo, 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.).
.commandexecução do arquivo de script, apesar da configuração do perfil?
bashscript, 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.
AutomatoraplicaçãoRunbotã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