Controle de Argumentos no Shell: Como Capturar e Processar Parâmetros em Scripts Bash

Controle de Argumentos no Shell: Como Capturar e Processar Parâmetros em Scripts Bash

Capturar argumentos passados pela linha de comando permite criar scripts dinâmicos e reutilizáveis sem a necessidade de alterar o código-fonte a cada execução. No Bash, isso é feito por meio das variáveis posicionais ($1, $2, etc.), que recebem os valores informados pelo usuário no momento da chamada. A seguir, veja como validar e utilizar esses parâmetros de entrada com segurança.

Bash

#!/bin/bash
# Script para processamento de parâmetros posicionais de entrada

# 1. Validação básica: verifica se o número mínimo de argumentos ($#) foi fornecido
if [ $# -lt 2 ]; then
    echo "Erro: Parâmetros insuficientes!"
    echo "Uso correto: $0 <nome_usuario> <ambiente>"
    exit 1
fi

# 2. Captura dos parâmetros posicionais em variáveis nomeadas
USUARIO="$1"
AMBIENTE="$2"
PORTA="${3:-8080}" # Valor padrão (8080) caso o 3º parâmetro não seja informado

echo "=== Configuração do Deploy ==="
echo "Executando script: $0"
echo "Usuário responsável: $USUARIO"
echo "Ambiente de destino: $AMBIENTE"
echo "Porta configurada: $PORTA"

Exemplo de uso e execução no terminal:

Bash

# Execução informando os dois parâmetros obrigatórios
./deploy.sh admin production

# Execução passando também o terceiro parâmetro opcional
./deploy.sh admin production 9090

Pontos-chave

  • Variáveis Posicionais ($1 a $9): O índice representa a ordem exata do argumento passado no terminal; $0 armazena o próprio nome do script executado.
  • Argumentos Acima de 9: Para acessar o décimo parâmetro em diante, utilize obrigatoriamente a sintaxe com chaves (ex: ${10}), pois $10 é interpretado pelo Shell como $1 seguido do caractere 0.
  • Contagem de Parâmetros ($#): A variável especial $# retorna o número total de argumentos passados, sendo ideal para criar validações iniciais no script.
  • Atribuição de Valor Padrão: A sintaxe ${3:-8080} define um valor fallback padrão para a variável caso o parâmetro posicional correspondente não tenha sido preenchido.
  • Tratamento de Argumentos com Espaço: Passe argumentos que contêm espaços entre aspas simples ou duplas na linha de comando (ex: ./script.sh "Maria Silva" dev) para evitar que o Shell os divida em múltiplos parâmetros.

Thales de Oliveira Gomes

Thales de Oliveira Gomes é gestor de Tecnologia da Informação, especialista em infraestrutura de redes, computação em nuvem e operações de TI hospitalar, com mais de 18 anos de experiência na área. Graduado em Gestão de TI e pós-graduado em Engenharia de Redes e Telecomunicações, Cloud Computing, Redes de Computadores e Gestão Hospitalar, construiu uma trajetória sólida liderando projetos de alta complexidade, como a implementação e migração para nuvem de sistemas ERP de grande porte. Sua atuação no setor o levou a ser indicado ao prêmio IT Leaders Brasil na categoria Rising Leaders. Além da carreira corporativa e da paixão por tecnologia, Thales é autor independente com mais de 70 obras publicadas sobre redes, segurança da informação, Linux e física, além de criador de conteúdo no blog Vetor Tech e na plataforma CiberDicas. No universo das artes e do entretenimento, atua como produtor de música eletrônica sob o projeto Yknex, cria ilustrações digitais e compartilha walkthroughs de games no YouTube.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *