Pular para conteúdo

Aula 13 - Introdução a Shell Scripting: Automação, Variáveis e Condicionais 🐧

Objetivo Pedagógico

Objetivo: Shebang (#!/usr/bin/env bash), permissões de execução (chmod +x), variáveis, argumentos posicionais ($0, $1, \(#), códigos de saída (\)?), operadores de teste ([ ] e [[ ]]) e estruturas if/elif/else.


📑 1. Fundamentos Teóricos & Arquitetura

Shebang (#!/usr/bin/env bash), permissões de execução (chmod +x), variáveis, argumentos posicionais ($0, $1, \(#), códigos de saída (\)?), operadores de teste ([ ] e [[ ]]) e estruturas if/elif/else. No ecossistema corporativo moderno, servidores de missão crítica, instâncias de nuvem (AWS, GCP, Azure), clusters Kubernetes e a esmagadora maioria dos supercomputadores do mundo rodam sobre sistemas Linux/Unix.

📐 Visão Arquitetural & Fluxo Operacional

graph TD
    A["Espaço de Usuário (User Space)<br>Shell / Comandos / Aplicações"] -->|System Calls| B["Espaço de Kernel (Kernel Space)<br>Introdução a Shell Scripting: Automação, Variáveis e Condicionais"]
    B --> C["Drivers e Periféricos"]
    C --> D["Hardware Físico<br>CPU, Memória, Disco e Rede"]

    style A fill:#e3f2fd,stroke:#1565c0
    style B fill:#fff3e0,stroke:#e65100,stroke-width:2px
    style C fill:#e8f5e9,stroke:#2e7d32
    style D fill:#f3e5f5,stroke:#7b1fa2

🔍 Pilares Técnicos de Engenharia

Nesta unidade, exploramos em detalhe: - Shebang (#!/usr/bin/env bash): Pilar conceitual indispensável para administração profissional do sistema. - Código de Saída (\(?)**: Pilar conceitual indispensável para administração profissional do sistema. - **Modo Seguro (set -euo pipefail)**: Pilar conceitual indispensável para administração profissional do sistema. - **Argumentos Posicionais (\)1, $#): Pilar conceitual indispensável para administração profissional do sistema. - Condicionais if [[ ... ]]: Pilar conceitual indispensável para administração profissional do sistema.


💻 2. Laboratório de Comandos no Terminal

Execute os comandos práticos abaixo para validar e consolidar o aprendizado em seu terminal:

#!/usr/bin/env bash
set -euo pipefail

ALVO="/var/log/syslog"

if [[ -f "$ALVO" ]]; then
    TAMANHO=$(du -h "$ALVO" | cut -f1)
    echo "O arquivo $ALVO existe e seu tamanho é $TAMANHO."
else
    echo "Erro: Arquivo $ALVO não encontrado!" >&2
    exit 1
fi

💡 Análise Técnica dos Comandos

  1. Padrão de Execução: Comandos são executados de forma não-interativa e com flags que favorecem automação em scripts de infraestrutura.
  2. Boas Práticas: Uso consciente de privilégios de superusuário (sudo), minimizando execuções diretas como root.
  3. Inspeção e Verificação: Sempre valide o código de retorno (echo $?) e consulte a documentação oficial com man [comando].

🎯 3. Próximos Passos & Sequência Didática