Início
» MAC OS X
»
Como executar comandos do Terminal a partir de um script no macOS
Como executar comandos do Terminal a partir de um script no macOS
Para executar comandos do Terminal a partir de um script no macOS, coloque-os em um script de texto simples, torne-o executável e execute-o a partir do Finder ou do Terminal. Use uma .commandextensão para abri-lo com um clique duplo. Um script não ignora os controles de privacidade do macOS nem concede privilégios de administrador.
Um pequeno script em shell começa com um shebang que seleciona o zsh.
1. Escreva os comandos em um arquivo de texto simples.
Um script de shell é um arquivo de texto que contém comandos. Ele começa com um shebang , a primeira linha que informa ao macOS qual shell deve interpretar o arquivo. O shell padrão atual para novas janelas do Terminal é o zsh, embora um administrador possa definir um padrão diferente, como a Apple explica em seu guia do Terminal . Este exemplo usa explicitamente o zsh:
#!/bin/zsh
# Print a message when the script runs
echo "Script is running"
Coloque os comandos em linhas separadas abaixo do shebang. O shebang escolhe o interpretador, então use a sintaxe que ele suporta; um script Bash, por exemplo, pode começar com ` . O guia de shell script#!/bin/bash da Apple explica o básico.
Você pode usar o TextEdit, mas certifique-se de que o arquivo seja texto simples: novos documentos do TextEdit podem ser formatados em rich text. Escolha Formatar > Converter para Texto Simples ou defina o formato de novo documento do TextEdit como Texto Simples nas configurações. A formatação rich text não é código shell. A Apple documenta essas opções no guia do TextEdit . Um editor de código ou um editor de linha de comando também nanofuncionam.
Salve o script com a extensão .command em um local de fácil acesso.
2. Salve com uma .commandextensão.
Salve o arquivo de texto simples com um nome descritivo, como MyScript.command. A extensão .bashrc ajuda o Finder a abrir o script no Terminal quando você clicar duas vezes nele. A documentação arquivada para desenvolvedores da Apple descreve esse fluxo de trabalho de clique duplo para scripts de shell. Verifique o nome final no Finder: se terminar em .bashrc .command.txt, renomeie-o para que a extensão final seja apenas .command.bashrc. Mantenha o exemplo em um local como sua Área de Trabalho enquanto você o configura.
Se o macOS perguntar qual extensão usar, mantenha-a .commande confirme se o Finder não adicionou nenhuma extensão .txt.
3. Torne o script executável.
Abra o Terminal e conceda permissão à sua conta para executar o arquivo. Para o exemplo salvo na Área de Trabalho, digite:
chmod u+x "$HOME/Desktop/MyScript.command"
Pressione Enter. u+xIsso adiciona permissão de execução para o proprietário; as aspas protegem caminhos com espaços. Substitua o caminho de exemplo, se necessário. Arraste o arquivo para o Terminal ou use o menu Option-clique do Finder para copiar o caminho. A Apple mostra o mesmo método em suas instruções para arquivos executáveis .
O comando chmod adiciona permissão de execução para o proprietário do arquivo.
4. Execute o script
Clique duas vezes MyScript.commandno Finder para executá-lo no Terminal. A saída e os erros aparecerão lá. Ou digite o caminho completo:
"$HOME/Desktop/MyScript.command"
Ou então, primeiro acesse a pasta e depois adicione um prefixo ao nome do arquivo ./:
cd "$HOME/Desktop"
./MyScript.command
O comando ` ./--execute` instrui o shell a executar um arquivo na pasta atual. O guia de comandos do Terminal da Apple explica como executar um arquivo executável pelo caminho (path/to/file).
Execute o arquivo pelo caminho indicado e verifique a saída no Terminal.
Solucionar problemas de erros comuns
"Permissão negada": Verifique se você executou o comando chmod u+xno arquivo correto. Se necessário, repita o comando usando o caminho exato do arquivo. Tornar um arquivo executável não autoriza todos os comandos dentro dele.
“Arquivo ou diretório inexistente”: Confirme a localização e a grafia, incluindo a extensão. Um arquivo salvo acidentalmente como MyScript.command.txtnão corresponderá ao comando acima. Arrastar o arquivo para o Terminal pode ajudar a inserir seu caminho.
Um comando funciona quando digitado, mas não no script: o script pode usar um shell diferente ou depender de aliases, variáveis de ambiente ou um diretório de trabalho da sua sessão interativa do Terminal. Use o shebang correto, evite depender de aliases e especifique os caminhos dos arquivos explicitamente. Se os comandos precisarem de uma pasta específica, adicione uma cdlinha apropriada perto do início do script.
Entenda as permissões antes de compartilhar
A permissão de execução é independente das permissões de privacidade. Um script normalmente é executado como sua conta; use-a sudoapenas para comandos que exigem privilégios de administrador.
O macOS pode solicitar acesso a pastas protegidas ou outros aplicativos. Analise cada solicitação e conceda apenas o necessário. Verifique o menu Apple > Ajustes do Sistema > Privacidade e Segurança para Arquivos e Pastas e as configurações de privacidade relacionadas . As aprovações dependem do acesso solicitado e do aplicativo que fez a solicitação; elas não são permissões gerais por comando e não são compartilhadas com um script.
Antes de executar ou compartilhar um script, leia cada linha e certifique-se de entender o que ele altera. Um .commandarquivo é conveniente porque pode ser executado ao ser aberto, portanto, use apenas arquivos de fontes confiáveis.