Início
» MAC OS X
»
Como executar um script de shell (.sh) no macOS
Como executar um script de shell (.sh) no macOS
Para executar um script de shell no macOS , abra o Terminal, acesse a pasta que contém o .sharquivo e execute-o com o interpretador. Por exemplo, ` bash hello.shbash script` executa um script Bash sem alterar suas permissões. Se você quiser executá-lo como um comando, torne-o executável com `chmod +x` chmod +x hello.sh, e então execute ` ./hello.shchmod +x`. Esses métodos funcionam nas versões atuais do macOS.
Verifique o script antes de executá-lo.
Um script shell é um arquivo de texto simples que contém comandos. Esses comandos são executados com as permissões da sua conta de usuário, portanto, um script pode editar ou excluir arquivos, instalar software ou enviar dados por uma rede. Leia o script que você recebeu antes de executá-lo, especialmente se ele solicitar uma senha de administrador ou usar privilégios de administrador sudo. Execute scripts apenas de fontes confiáveis; alterar as permissões de um arquivo não torna seu conteúdo seguro.
A Apple descreve os scripts de shell como arquivos de texto que contêm comandos UNIX e explica como um shebang seleciona o shell que executa o script. Consulte o guia do Terminal da Apple sobre scripts de shell .
Execute um script .sh com Bash
Esta é a maneira mais simples de executar um script Bash. Você não precisa adicionar permissão de execução primeiro.
Crie ou localize o script. Um script shell pode ser escrito em qualquer editor de texto simples. Para um teste rápido, abra o TextEdit, escolha Formatar > Converter para Texto Simples e digite estas duas linhas:
#!/bin/bash
echo "Hello from macOS"
Salve o arquivo como hello.sh. Na caixa de diálogo de salvar, verifique se o nome termina em .she se o TextEdit não adicionou .txt. A primeira linha é o shebang: ela identifica o Bash como o interpretador quando o script é executado diretamente. A segunda linha imprime uma mensagem curta.
O arquivo de exemplo hello.sh contém um shebang seguido por um comando que imprime texto.
Abra o Terminal e acesse a pasta do arquivo. Pressione Command-Espaço, digite Terminal e pressione Enter. Se você salvou o arquivo na pasta Downloads, digite:
cd ~/Downloads
Pressione Enter após cada comando. Você pode digitar lspara listar os arquivos e confirmar se o arquivo hello.shestá lá. Altere Downloadspara a pasta que você realmente usou. Se um nome de pasta ou arquivo contiver espaços, coloque o caminho entre aspas, como cd "$HOME/My Scripts".
Use o comando `cd` para abrir a pasta que contém o script e, em seguida, verifique o nome dela com o comando `ls`.
Execute o script com o Bash. Digite o nome do script após bash:
bash hello.sh
O terminal deve exibir Hello from macOS. Se o script usar a sintaxe Zsh em vez de Bash, execute zsh hello.sh. O shell que abre interativamente no Terminal geralmente é o Zsh, mas isso não significa que todo script deva ser executado com Zsh; use o interpretador para o qual o script foi escrito. O shebang de um script geralmente indica esse interpretador.
Conceda permissão de execução. Na mesma janela e pasta do Terminal, execute:
chmod +x hello.sh
Isso adiciona permissão de execução a este arquivo. É uma alteração única, a menos que as permissões sejam redefinidas posteriormente. Evite usar configurações de permissão mais amplas do que o necessário; chmod +xé suficiente para um script pessoal de sua propriedade.
O comando chmod +x marca o arquivo hello.sh como executável.
Inicie o programa a partir da pasta atual. Digite:
./hello.sh
O ./parâmetro `--dir` instrui o shell a executar o arquivo no diretório atual. Sem ele, o shell geralmente pesquisa pastas listadas em `/usr/local/ bin` PATHem vez da pasta atual. Se você estiver em outro diretório, use `--dir` cdpara retornar à pasta do script ou digite o caminho completo, por exemplo , `/usr/local/bin` ~/Downloads/hello.sh.
Executar ./hello.sh inicia o script executável e exibe sua saída.
Erros comuns e soluções
A mensagem "Permissão negada" aparece após o uso do comando ./hello.sh: confirme o nome do arquivo e execute-o chmod +x hello.sh. Ou use o comando bash hello.shse for um script Bash e você não precisar de execução direta.
“Arquivo ou diretório inexistente”: confirme a pasta com pwd, liste seu conteúdo com ls, e verifique a ortografia e o uso de maiúsculas e minúsculas. Certifique-se de que o arquivo não esteja nomeado como hello.sh.txt.
Erro "Comando não encontrado" no script: o script pode depender de um utilitário que está faltando ou não está instalado PATH. Consulte a documentação do script antes de instalar qualquer coisa.
A mensagem de erro "Interpretador inválido" ou uma menção ^Ma um interpretador inválido na primeira linha pode indicar um interpretador indisponível, ou o arquivo pode usar quebras de linha no estilo Windows. Verifique o shebang e salve o arquivo com quebras de linha Unix (LF).
Qual método você deve usar?
Use `--execute` bash hello.shpara uma execução rápida quando souber que se trata de um script Bash. Use `--execute` chmod +x hello.shseguido de ./hello.sh`--execute` quando quiser executá-lo diretamente e deixar que o shebang escolha o interpretador. Nenhum dos métodos instala dependências ausentes, corrige comandos incompatíveis ou verifica se o script é confiável.