ragfica.pages.dev

Como checar dígitos verificadores de CPF em Bash?

Validar o CPF manualmente é uma tarefa propensa a erros e demorada. Com um script Bash, você automatiza completamente o processo, garantindo precisão e rapidez ao verificar os dígitos verificadores diretamente na linha de comando.

Pré-requisitos

Script Bash para validação de CPF

O script a seguir implementa o algoritmo padrão de validação de CPF, removendo caracteres não numéricos e calculando os dois dígitos verificadores. Salve-o em um arquivo, por exemplo, valida_cpf.sh.

#!/bin/bash

# Função para validar CPF
valida_cpf() {
    local cpf=$1
    # Remove caracteres não numéricos
    cpf=$(echo "$cpf" | tr -d '[:punct:]' | tr -d '[:space:]')

    # Verifica se tem 11 dígitos e não são todos iguais
    if [[ ${#cpf} -ne 11 || "$cpf" =~ ^(0{11}|1{11}|2{11}|3{11}|4{11}|5{11}|6{11}|7{11}|8{11}|9{11})$ ]]; then
        echo "CPF inválido: formato incorreto ou dígitos repetidos."
        return 1
    fi

    # Extrai os 9 primeiros dígitos
    local digitos=${cpf:0:9}

    # Calcula o primeiro dígito verificador
    local soma=0
    local i
    for ((i=0; i<9; i++)); do
        soma=$((soma + ${digitos:i:1} * (10 - i)))
    done
    local resto=$((soma % 11))
    local dv1=$((resto < 2 ? 0 : 11 - resto))

    # Calcula o segundo dígito verificador
    digitos="${digitos}${dv1}"
    soma=0
    for ((i=0; i<10; i++)); do
        soma=$((soma + ${digitos:i:1} * (11 - i)))
    done
    resto=$((soma % 11))
    local dv2=$((resto < 2 ? 0 : 11 - resto))

    # Compara com os dígitos verificadores do CPF informado
    if [[ $dv1 -eq ${cpf:9:1} && $dv2 -eq ${cpf:10:1} ]]; then
        echo "CPF válido: $cpf"
        return 0
    else
        echo "CPF inválido: dígitos verificadores incorretos."
        return 1
    fi
}

# Exemplo de uso
if [[ $# -eq 0 ]]; then
    echo "Uso: $0 "
    exit 1
fi

valida_cpf "$1"

Exemplo Prático

CPF de Entrada Saída Esperada
529.982.247-25 CPF válido: 52998224725
123.456.789-00 CPF inválido: dígitos verificadores incorretos.
111.111.111-11 CPF inválido: formato incorreto ou dígitos repetidos.

Como usar o script

Para executar o script, siga estes passos:

  1. Salve o código em um arquivo chamado valida_cpf.sh.
  2. Dê permissão de execução: chmod +x valida_cpf.sh.
  3. Execute passando um CPF como argumento: ./valida_cpf.sh 529.982.247-25.

Conclusão

Com este script Bash, você automatiza a validação de CPF em segundos, eliminando erros manuais e garantindo que apenas CPFs com dígitos verificadores corretos sejam aceitos. É uma solução rápida, confiável e perfeita para processamento em lote ou integração em sistemas maiores.