Este curso intermediário amplia scripts Bash básicos com funções reutilizáveis, escopo controlado, limpeza, expansão de parâmetros e arrays. Em cinco laboratórios guiados, você organizará a lógica, separará texto de status, reagirá ao encerramento, manipulará strings sem ferramentas externas e processará coleções com segurança.
O desafio final combina essas técnicas em log_manager.sh: manter um array fixo de logs preparados, derivar nomes .backup em uma função, copiar arquivos existentes, alertar sobre ausentes e remover um relatório temporário ao sair.
O que você aprenderá
- Definir e chamar funções Bash e passar valores por argumentos
- Proteger o estado com variáveis
localem vez de alterar globais acidentalmente - Retornar códigos de status, capturar
$?imediatamente e desviar conforme o resultado - Registrar funções de limpeza para SIGINT e EXIT com
trap - Fatiar, substituir e fornecer valores padrão por expansão de parâmetros
- Declarar arrays, acrescentar elementos, expandir todos os valores e iterar com aspas seguras
- Derivar nomes de backup substituindo
.logpor.backupdentro de uma função - Coordenar limpeza, arrays, testes de arquivos, funções e avisos em um script executável
Para quem é este curso
Este curso é destinado a quem já concluiu fundamentos de Bash e deseja técnicas intermediárias para tornar pequenos scripts de manutenção mais modulares e previsíveis.
Pré-requisitos: Scripts Bash, variáveis, argumentos posicionais, condicionais, loops, testes de arquivos, códigos de saída, redirecionamento, permissões de execução e comandos básicos de arquivos.
Ambiente de aprendizagem: Um terminal LabEx baseado em Ubuntu com Bash, scripts editáveis, exercícios de sinais e arquivos temporários e três logs preparados para o desafio.
Perguntas frequentes
Como o curso é organizado?
Cinco laboratórios oferecem prática guiada. O sexto item é um desafio em que você cria log_manager.sh combinando trap de limpeza, função, array, substituição e loop.
O gerenciador final compacta, exclui ou realmente rotaciona logs?
Não. Ele copia cada .log preparado para um .backup ao lado e preserva o original. Não compacta, aplica retenção, trunca nem configura logrotate.
Quais eventos os exercícios de trap tratam?
O laboratório guiado registra limpeza para SIGINT e EXIT, removendo um temporário com Ctrl+C ou saída normal. O desafio exige especificamente um trap EXIT para report.txt.
Uma função Bash pode retornar texto com return?
Não nestes exercícios. return transporta um status inteiro de 0 a 255 para controle; texto é produzido com echo ou capturado por substituição de comandos.





