O que é o formato de ficheiro SH?
.sh é uma extensão de arquivo comum de shell Unix, usada pelo bash (Bourne-again shell) e outros shells compatíveis com POSIX. Arquivos .sh armazenam scripts de shell - sequências de comandos e instruções escritas em linguagem de shell, salvas como texto simples.
Arquivos .sh são criados em qualquer editor de texto e são usados principalmente para scripts executados por uma linha de comando de shell Unix. Um arquivo .sh normalmente começa com uma linha shebang - como #!/bin/sh ou #!/bin/bash - que informa ao sistema operacional qual intérprete invocar. Para executar um script diretamente, o arquivo deve se tornar executável com chmod +x filename.sh.
Bash é uma linguagem de comando interpretada e um shell Unix gratuito distribuído sob a licença GNU, usado por padrão em muitos sistemas Linux e macOS. A maioria dos sistemas da família Unix suporta este shell. O Bash substituiu o Bourne shell original, daí o nome - Bourne-again.
Arquivos .sh também podem ser usados para salvar scripts destinados a outros shells, como Korn Shell, Z Shell, C Shell ou Bourne Shell. No Windows, a automação equivalente é tratada por arquivos batch ou scripts PowerShell. Como o .sh convencionalmente sinaliza compatibilidade com shell POSIX, scripts voltados para um shell específico declaram seu intérprete explicitamente na linha shebang.
Segurança e proteção
RISCO: MEDIUMUm arquivo .sh é o equivalente Unix a executar comandos arbitrários: quando executado, pode fazer qualquer coisa que o usuário possa - excluir arquivos, instalar software, exfiltrar dados ou executar malware. O notório padrão «curl URL | bash» executa um script remoto sem chance de inspecioná-lo. Regras de segurança: (1) NUNCA execute um .sh de uma fonte não confiável sem lê-lo primeiro - é texto simples, então abra-o em um editor e verifique o que ele faz; (2) desconfie de comandos de linha única ofuscados, blocos base64 ou scripts que direcionam para sudo; (3) scripts de instalação autoextraíveis (shar/Makeself, incluindo .run) escondem uma carga útil após o script - execute-os apenas do fornecedor oficial. Um .sh não é automaticamente perigoso, mas é código, portanto, confie na fonte.
Detalhes do formato
em resumoProgramas que abrem arquivos SH
Detalhes técnicos
especificação profunda| Tipo de arquivo | Script de shell executável em texto simples |
| Tipo MIME | application/x-sh |
| Convenção Shebang | A primeira linha declara o intérprete: #!/bin/sh, #!/bin/bash, ou #!/usr/bin/env bash |
| Codificação de caracteres | UTF-8 ou ASCII; a codificação deve ser suportada pelo shell de destino |
| Finais de linha | LF (estilo Unix) obrigatório; finais de linha CRLF causam erros de sintaxe na maioria dos shells |
| Método de execução | Invoque com bash script.sh, ou defina o bit executável (chmod +x) e execute diretamente como ./script.sh |
| Sintaxe de comentário | caractere #; tudo do # até o fim da linha é ignorado pelo intérprete |
| Atribuição de variável | Nenhuma declaração de tipo necessária; VAR=valor (sem espaços ao redor do =); acessado como $VAR ou ${VAR} |
| Convenção de código de saída | 0 = sucesso; qualquer valor diferente de zero = erro; retornado via exit N ou inspecionado em $? |
| Portabilidade POSIX | Scripts escritos no padrão POSIX sh rodam em bash, dash, ksh e qualquer shell em conformidade |
| Sinalizadores de tratamento de erro | set -e sai no primeiro erro; set -u trata variáveis não definidas como erros; set -o pipefail captura falhas em pipes |
| Suporte de plataforma | Nativo no Linux e macOS; disponível no Windows via WSL, Git Bash ou Cygwin |
| Intérprete primário | Bash (GNU Bourne-Again Shell); também dash, ksh ou zsh dependendo da linha shebang |
| Depuração de script | set -x ativa o modo de rastreamento, imprimindo cada comando antes da execução; bash -n verifica a sintaxe sem rodar |
| Lançado | 1979 (Bourne shell, Unix V7); POSIX shell standardized; Bash 1989 |
| Padrão aberto | Sim · livre de royalties |
| Especificação | pubs.opengroup.org |
Conversões de SH
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos SH.