🖥️ Sintaxe e Parametros
Bash executa comandos no terminal do sistema. E a ferramenta mais poderosa e tambem a mais perigosa - por isso requer atencao especial.
📋 Parametros do Bash
| Parametro | Tipo | Descricao |
|---|---|---|
| command | string | Comando a executar (obrigatorio) |
| timeout | number | Timeout em ms (max 600000 = 10min) |
| description | string | Descricao do que o comando faz |
| run_in_background | boolean | Executar em background |
Exemplos Basicos
# Listar arquivos
Bash(command="ls -la /projeto/src")
# Instalar dependencias
Bash(command="npm install", timeout=120000)
# Rodar testes
Bash(command="pytest tests/", description="Executar suite de testes")
⏱️ Timeouts e Limites
Por padrao, comandos tem timeout de 2 minutos (120000ms). Para operacoes longas, aumente o timeout ou use background execution.
Limites
- • Default: 120000ms (2 min)
- • Maximo: 600000ms (10 min)
- • Output: Truncado apos 30000 chars
Comandos Longos
# Build de projeto grande
Bash( command="npm run build", timeout=300000 )
# Ou em background
Bash( command="npm run build", run_in_background=true )
💡 Dica
Comandos em background nao bloqueiam - voce sera notificado quando terminarem. Use para builds, testes longos ou qualquer operacao que nao precisa de resultado imediato.
🔗 Encadeamento de Comandos
Use operadores shell para encadear comandos. A escolha do operador muda o comportamento em caso de erro.
&&
AND
Proximo so roda se anterior suceder
;
SEQUENCIAL
Roda proximo independente do resultado
||
OR
Proximo so roda se anterior falhar
⚠️ Nao Use Newlines
Nao use quebras de linha para separar comandos - use &&
ou ; na mesma linha. Newlines podem causar problemas de parsing.
📁 Diretorio de Trabalho
O diretorio de trabalho persiste entre comandos, mas o estado do shell (variaveis, etc) nao. Use caminhos absolutos sempre que possivel.
✗ Evite
# Muda diretorio - pode confundir
cd /projeto && npm test
Evite cd quando possivel
✓ Preferivel
# Caminho absoluto - mais claro
npm test --prefix /projeto
Use caminhos absolutos
📍 Caminhos com Espacos
Sempre use aspas duplas para caminhos que podem ter espacos:
# CORRETO
python "/path/with spaces/script.py"
# ERRADO
python /path/with spaces/script.py
🛡️ Seguranca e Sandbox
Bash pode executar qualquer comando no sistema. A seguranca depende do modo de permissao configurado.
Comportamento por Modo
Ask Mode
Pede permissao para cada comando Bash
Bypass Mode
Comandos na whitelist rodam automaticamente
YOLO Mode
Tudo roda sem perguntar - CUIDADO!
⚠️ Comandos Perigosos
Claude Code tem protecoes contra comandos destrutivos, mas em YOLO mode podem ser executados:
rm -rf /- Deleta tudogit push --force- Sobrescreve historicochmod -R 777 /- Quebra permissoes
🎯 Boas Praticas
Usar Bash de forma eficiente e segura requer seguir algumas praticas recomendadas.
✓ Fazer
- ✓ Usar descricoes claras
- ✓ Preferir ferramentas dedicadas (Glob/Grep)
- ✓ Usar caminhos absolutos
- ✓ Definir timeouts apropriados
- ✓ Executar comandos paralelos quando possivel
✗ Evitar
- ✗ Usar cat/grep/find via Bash
- ✗ Comandos interativos (-i flag)
- ✗ Newlines entre comandos
- ✗ cd desnecessario
- ✗ Comandos destrutivos sem revisao
💡 Use Ferramentas Dedicadas
Para leitura de arquivos use Read, para busca use Glob/Grep, para escrita use Write/Edit. Bash deve ser reservado para operacoes de sistema como instalar pacotes, rodar testes, builds e comandos git.
📋 Resumo do Modulo
Proximo Modulo:
2.5 - Git e Versionamento Integrado - commits, branches, PRs com gh CLI