Capítulo 6.1 - Introdução ao Scripting Shell
Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- Entender o que é um script shell
- Criar seu primeiro script Bash
- Compreender o shebang
- Tornar um script executável
- Utilizar variáveis básicas
O que é um Script Shell?
Um script shell é um arquivo contendo uma série de comandos shell que são executados sequencialmente. É uma maneira poderosa de automatizar tarefas.
Vantagens:
- Automação de tarefas repetitivas
- Combinação de comandos complexos
- Reutilização
- Agendamento com cron
Primeiro Script
Criar um Script
#!/bin/bash
# Meu primeiro script
echo "Olá Linux!"
echo "Data: $(date)"
echo "Usuário: $(whoami)"
Etapas:
- Criar o arquivo:
nano meu_script.sh - Adicionar o conteúdo acima
- Tornar executável:
chmod +x meu_script.sh - Executar:
./meu_script.sh
Shebang
A primeira linha #!/bin/bash é o shebang:
- Indica qual interpretador usar
- Necessário para execução direta
- Alternativas:
#!/bin/sh,#!/usr/bin/env bash
Variáveis
Declaração
#!/bin/bash
# Variáveis simples
NOME="Linux"
VERSAO=6.1
ATIVO=true
# Uso
echo "Nome: $NOME"
echo "Versão: $VERSAO"
echo "Ativo: $ATIVO"
Regras:
- Sem espaços ao redor do
= - Aspas para strings com espaços
$para usar a variável
Variáveis de Ambiente
#!/bin/bash
# Variáveis do sistema
echo "Home: $HOME"
echo "User: $USER"
echo "Path: $PATH"
echo "PWD: $PWD"
Variáveis Especiais
#!/bin/bash
echo "Nome do script: $0"
echo "Primeiro argumento: $1"
echo "Segundo argumento: $2"
echo "Número de argumentos: $#"
echo "Todos os argumentos: $@"
echo "Código de retorno: $?"
Leitura de Entrada
read
#!/bin/bash
# Ler uma entrada
echo "Digite seu nome:"
read NOME
echo "Olá $NOME!"
# Com prompt integrado
read -p "Digite sua idade: " IDADE
echo "Você tem $IDADE anos"
# Leitura silenciosa (senha)
read -s -p "Senha: " SENHA
echo
Comentários
#!/bin/bash
# Comentário em uma linha
# Comentário
# em várias linhas
# Comentário ao final da linha
COMANDO # Explicação
Exemplo Completo
#!/bin/bash
# Script de exemplo
# Autor: Seu nome
# Data: $(date +%Y-%m-%d)
# Variáveis
NOME_SCRIPT="meu_script.sh"
VERSAO="1.0"
# Função principal
main() {
echo "=== $NOME_SCRIPT v$VERSAO ==="
echo "Data: $(date)"
echo "Usuário: $USER"
echo "Diretório: $PWD"
echo "Argumentos: $#"
if [ $# -gt 0 ]; then
echo "Primeiro argumento: $1"
fi
}
# Execução
main "$@"
Execução
Métodos
# 1. Execução direta (requer shebang e chmod +x)
./meu_script.sh
# 2. Com bash explícito
bash meu_script.sh
# 3. Com sh
sh meu_script.sh
# 4. Source (executa no shell atual)
source meu_script.sh
. meu_script.sh # Atalho
Boas Práticas
Estrutura
#!/bin/bash
# 1. Shebang
# 2. Comentários de cabeçalho
# 3. Variáveis globais
# 4. Funções
# 5. Código principal
Opções Úteis
#!/bin/bash
set -e # Parar em caso de erro
set -u # Erro se variável não definida
set -o pipefail # Erro em pipeline
# Ou combinar
set -euo pipefail
Resumo
Neste capítulo, você aprendeu:
Script shell: Arquivo de comandos executáveis
Shebang: #!/bin/bash para indicar o interpretador
Variáveis: Declaração e uso com $
Leitura: read para entrada do usuário
Execução: ./script.sh, bash script.sh, source script.sh
Boas práticas: Estrutura, set -e, comentários
Próximos Passos
Capítulo 6.2: Variáveis e Parâmetros
Capítulo 6.3: Estruturas de Controle
Capítulo criado em: Dezembro 2024