Por Que Usar Este Formatador de Script Shell
- Formatação instantânea para POSIX sh, Bash, mksh e shells relacionados
- Regras estilo shfmt para indentação, espaçamento e blocos case/esac
- Projetado para suportar opções como tamanho de indentação, tabs vs espaços e espaçamento de redirecionamento
- Cole código bruto ou carregue arquivos `.sh`, `.bash`, `.ksh`, `.mksh` ou `.bats`
- Companheiro perfeito para pipelines de CI/CD, entrypoints do Docker e dotfiles
- Formatado via um backend seguro executando lógica estilo shfmt – nenhuma instalação local necessária
- Cópia com um clique ou download do script limpo
🛠️ Como Formatar Seus Scripts Shell Online for shell-script-formatter
1. Cole ou Carregue Seu Script
📥 Cole seu código shell no editor, ou arraste e solte um arquivo `.sh`, `.bash`, `.ksh`, `.mksh` ou `.bats`. O realce de sintaxe facilita identificar estrutura e comandos.
2. (Opcional) Ajuste Configurações Avançadas
⚙️ Se seu projeto usa regras de estilo personalizadas, ajuste a indentação ou outras opções avançadas quando disponíveis na interface. Caso contrário, o perfil padrão já corresponde às práticas comuns do shfmt.
3. Formate Seu Script
✨ Clique em **Formatar** para enviar seu script para a API segura de formatação. Ela reescreve indentação, espaçamento e certas construções enquanto preserva o comportamento.
4. Copie ou Baixe o Resultado
📤 Copie o script formatado de volta para seu editor, ou baixe-o como um arquivo `.sh` pronto para git, CI ou implantações em produção.
Especificações Técnicas
Formatos e Extensões Suportados
Suporta dialetos shell comuns estilo Bourne que você encontra em sistemas do mundo real:
| Formato / Dialeto | Extensão Típica | Descrição |
|---|---|---|
| POSIX sh | .sh | Scripts shell portáteis compatíveis com /bin/sh |
| Bash | .sh, .bash | Scripts GNU Bash e auxiliares interativos |
| Korn shell (ksh) | .ksh | Scripts Korn shell em ambientes legados |
| mksh | .mksh | Scripts MirBSD Korn shell |
| Testes Bats | .bats | Suítes de teste baseadas em shell usando Bats |
Comportamento de Formatação (Estilo shfmt)
O formatador de backend segue regras de estilo shfmt para layout consistente de shell.
| Aspecto | Comportamento | Benefício |
|---|---|---|
| Indentação | Normaliza indentação em `if`, `for`, `while`, `case`, funções e subshells | Mais fácil de analisar visualmente o fluxo de controle e aninhamento. |
| Espaçamento | Adiciona espaços ao redor de `=` em atribuições e ao redor de operadores binários quando apropriado | Reduz ruído visual e erros acidentais de análise. |
| Redirecionamentos | Suporta espaçamento ao redor de `>`, `>>`, `<` de acordo com as convenções de estilo shfmt | Melhora a legibilidade dos redirecionamentos de arquivo. |
| Blocos case | Alinha `case`, ramificações de padrão e `esac` consistentemente | Evita declarações case profundamente aninhadas ou comprimidas. |
| Saída idempotente | Executar o formatador novamente produz o mesmo resultado | Permite integração segura em hooks de pré-commit e CI. |
Limites e Tamanho de Entrada
Projetado para ser rápido e previsível mesmo em scripts não triviais.
| Parâmetro | Limite / Comportamento | Notas |
|---|---|---|
| Tamanho máximo de entrada (texto) | ≈ 2 MB | Scripts maiores que isso são melhor formatados localmente com shfmt. |
| Tamanho máximo de arquivo (upload) | ≈ 5 MB | Ideal para a maioria dos scripts de implantação e coleções de utilitários. |
| Codificação | UTF-8 recomendado | Converta codificações legadas como ISO-8859-1 antes da formatação. |
Modelo de Execução
O formatador é executado via um backend seguro usando lógica de estilo shfmt.
| Aspecto | Comportamento | Notas |
|---|---|---|
| Transporte | Chamada HTTPS para o endpoint `/api/shell-script-formatter` | Previne a interceptação enquanto seu script está sendo formatado. |
| Tempo Limite | ~25 segundos por solicitação | Evita tarefas descontroladas em entradas extremamente grandes ou patológicas. |
| Semântica | Apenas espaçamento e layout | A lógica do seu script é preservada; apenas a formatação é alterada. |
Equivalente CLI com shfmt
Quer o mesmo comportamento no seu terminal ou pipeline de CI? Use `shfmt` diretamente:
Linux / 🍎 macOS / 🪟 Windows (via WSL ou Go)
Instalar shfmt usando Go
go install mvdan.cc/sh/v3/cmd/shfmt@latestInstala o binário `shfmt` no seu diretório bin do Go (ex: `~/go/bin`).
Formatar um arquivo shell com indentação de 2 espaços
shfmt -i 2 -w script.shSubstitui `script.sh` com saída formatada consistentemente.
Formatar e imprimir no stdout
shfmt -i 4 script.shUsa indentação de 4 espaços e imprime no stdout sem modificar o arquivo.
Verificar formatação em CI (sem alterações)
shfmt -d scripts/Mostra um diff para arquivos que seriam reformatados; sai com código não-zero se mudanças forem necessárias.
Casos de Uso Práticos para Formatação de Shell
DevOps & Pipelines CI/CD
Mantenha scripts críticos legíveis, revisáveis e seguros para produção.
- Limpar scripts de implantação e reversão antes de mesclar em `main`.
- Normalizar hooks em `.git/hooks`, `scripts/` e auxiliares de CI.
- Formatat pontos de entrada do Docker e scripts de inicialização de contêineres.
shfmt -i 2 -w ./scripts/deploy.shshfmt -i 2 -w ./scripts/*.shColaboração em Equipe & Código Aberto
Evite discussões de estilo e foque na lógica nas revisões.
- Aplicar um único estilo em todos os scripts shell dos colaboradores.
- Facilitar a integração mantendo dotfiles e auxiliares organizados.
- Reduzir diffs ruidosos padronizando indentação e espaçamento.
shfmt -w hooks/*.shshfmt -i 2 -ci -bn -w .Aprendendo & Ensinando Script Shell
Mostrar melhores práticas para estudantes e desenvolvedores juniores.
- Limpar exemplos antes de colocá-los em slides ou documentação.
- Auto-formatar submissões de estudantes para focar feedback na semântica.
- Demonstrar como o layout afeta a legibilidade e detecção de bugs.
❓ Frequently Asked Questions
🔍O que é shfmt?
⚙️Posso escolher quantos espaços usar na indentação?
🚫Esta ferramenta web sobrescreve meu arquivo?
💬Ela entende sintaxe específica do Bash?
🔒É seguro formatar scripts sensíveis aqui?
Pro Tips
Execute shfmt antes de cada commit para que seu histórico git foque em mudanças reais, não em espaços em branco.
Combine `shfmt -d` com CI para bloquear merges quando scripts não estiverem devidamente formatados.
Combine este formatador com ShellCheck para capturar problemas de estilo e lógica em seus scripts shell.
Mantenha seus shebangs (`#!/usr/bin/env bash`) consistentes em todos os scripts para evitar problemas sutis de portabilidade.
Additional Resources
Other Tools
- Embelezador CSS
- Embelezador HTML
- Embelezador Javascript
- Embelezador PHP
- Seletor de Cores
- Extrator de Sprites
- Decodificador Base64
- Codificador Base64
- Formatador Csharp
- Formatador CSV
- Dockerfile Formatter
- Formatador Elm
- Formatador ENV
- Formatador Go
- Formatador GraphQL
- Formatador HCL
- Formatador INI
- Formatador JSON
- Formatador LaTeX
- Formatador Markdown
- Formatador Objective-C
- Php Formatter
- Formatador Proto
- Formatador Python
- Formatador Ruby
- Formatador Rust
- Formatador Scala
- Formatador SQL
- Formatador SVG
- Formatador Swift
- Formatador TOML
- Typescript Formatter
- Formatador XML
- Formatador YAML
- Formatador Yarn
- Minificador CSS
- Html Minifier
- Javascript Minifier
- Minificador JSON
- Minificador XML
- Visualizador de Cabeçalhos HTTP
- PDF para Texto
- Testador de Regex
- Verificador de Classificação SERP
- Consulta Whois