Um linter e formatador de código Python extremamente rápido, escrito em Rust, com mais de 900 regras e formatação compatível com Black.
koalaman/shellcheck
Ferramenta de análise estática que encontra bugs, problemas de portabilidade e maus hábitos em scripts de shell bash e sh.
- Estrelas
- 40,295
- Forks
- 1,973
- Issues abertas
- 1,090
- Último commit
- anteontem
O que é?
O ShellCheck analisa scripts de shell e informa avisos e sugestões sobre erros de sintaxe, problemas semânticos e armadilhas sutis que podem fazer um script se comportar de forma inesperada ou falhar mais tarde. Ele é voltado a scripts bash e sh e aponta problemas como variáveis sem aspas, operadores de teste usados incorretamente, padrões inválidos de find ou grep e códigos de saída mascarados, com explicações para cada aviso.
Ele pode ser usado na web, em shellcheck.net, pela linha de comando ou em editores como Vim, Emacs, Sublime, VS Code e Pulsar. A saída pode ser em texto simples, JSON, CheckStyle XML ou mensagens no estilo GCC, e os códigos de saída facilitam interromper um build ou uma execução de testes quando surgem avisos.
O ShellCheck é escrito em Haskell e distribuído sob a licença GPL-3.0. Está disponível na maioria dos gerenciadores de pacotes de sistema, no Docker e no conda, além de binários pré-compilados para Linux, macOS e Windows.
Recursos principais
- 01Detecta erros de aspas, condicionais inválidas e comandos usados incorretamente em scripts bash e sh.
- 02Aponta problemas de portabilidade em relação ao shebang do script, de forma semelhante ao checkbashisms.
- 03Explica cada aviso e inclui links para páginas detalhadas na wiki.
- 04Integra-se a diversos editores e serviços de CI.
- 05Gera saída em texto, JSON, CheckStyle XML ou mensagens compatíveis com GCC.
Casos de uso
- Analisar scripts de shell em um pipeline de CI para que novos avisos interrompam os builds.
- Encontrar variáveis sem aspas e padrões perigosos de rm ou find antes de executar um script.
- Verificar se um script escrito para /bin/sh não depende de recursos exclusivos do bash.
- Receber feedback em linha enquanto edita scripts de shell no seu editor.
Início rápido
- 1
Instale o ShellCheck com o Homebrew
brew install shellcheck - 2
Execute o ShellCheck em um script
shellcheck yourscript
Antes de usar
- Licenciado sob a GPL-3.0, uma licença copyleft.
- A compilação a partir do código-fonte requer cerca de 2 GB de RAM.
Em coleções
Tópicos
Perguntas frequentes
- O que é shellcheck?
- Ferramenta de análise estática que encontra bugs, problemas de portabilidade e maus hábitos em scripts de shell bash e sh. O ShellCheck analisa scripts de shell e informa avisos e sugestões sobre erros de sintaxe, problemas semânticos e armadilhas sutis que podem fazer um script se comportar de forma inesperada ou falhar mais tarde. Ele é voltado a scripts bash e sh e aponta problemas como variáveis sem aspas, operadores de teste usados incorretamente, padrões inválidos de find ou grep e códigos de saída mascarados, com explicações para cada aviso.
- shellcheck é gratuito? Qual é a licença?
- shellcheck é open source sob a licença GPL-3.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- shellcheck ainda é mantido?
- Manutenção ativa. O último commit de shellcheck foi em 5 de nov. de 2026.
- Para que posso usar shellcheck?
- Analisar scripts de shell em um pipeline de CI para que novos avisos interrompam os builds. Encontrar variáveis sem aspas e padrões perigosos de rm ou find antes de executar um script. Verificar se um script escrito para /bin/sh não depende de recursos exclusivos do bash. Receber feedback em linha enquanto edita scripts de shell no seu editor.
- Como instalar shellcheck?
- Instale o ShellCheck com o Homebrew: brew install shellcheck Execute o ShellCheck em um script: shellcheck yourscript
- Onde consigo shellcheck?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/koalaman/shellcheck
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Um linter extensível para ECMAScript/JavaScript que identifica padrões problemáticos no código e corrige muitos deles automaticamente.
Um linter para Rust com mais de 800 regras que detecta erros comuns e sugere código mais idiomático, executado como subcomando do cargo.
Analisador estático de código e formatador para Ruby que aplica as regras do Ruby Style Guide da comunidade e corrige automaticamente muitas infrações.
Analisador estático de código Python que detecta erros, aplica padrões de codificação e aponta problemas no código sem executá-lo.
Um linter rápido e configurável para Go, que substitui o golint e oferece regras e formatadores de saída personalizados.