Validar uma Inscrição Estadual (IE) de Minas Gerais manualmente pode ser um processo demorado e propenso a erros. Com um script Bash, você automatiza a verificação dos dígitos verificadores, garantindo precisão e rapidez no processamento de grandes volumes de dados.
O script a seguir implementa o algoritmo de validação da IE de Minas Gerais. Ele verifica se a inscrição possui 13 dígitos e valida os dois dígitos verificadores usando os pesos específicos do estado.
#!/bin/bash
# Função para validar IE de Minas Gerais
validate_ie_mg() {
local ie=$1
local base=${ie:0:11}
local digito1=${ie:11:1}
local digito2=${ie:12:1}
local soma1=0
local soma2=0
local peso=0
# Cálculo do primeiro dígito verificador
for ((i=0; i<${#base}; i++)); do
local num=${base:$i:1}
peso=$((i + 3))
soma1=$((soma1 + num * peso))
done
local resto1=$((soma1 % 11))
local dv1=$((11 - resto1))
if [ $dv1 -ge 10 ]; then
dv1=0
fi
# Cálculo do segundo dígito verificador
local base_com_dv1="${base}${dv1}"
for ((i=0; i<${#base_com_dv1}; i++)); do
local num=${base_com_dv1:$i:1}
peso=$((i + 4))
soma2=$((soma2 + num * peso))
done
local resto2=$((soma2 % 11))
local dv2=$((11 - resto2))
if [ $dv2 -ge 10 ]; then
dv2=0
fi
# Verificação final
if [ "$dv1$dv2" = "${digito1}${digito2}" ]; then
echo "VÁLIDA"
else
echo "INVÁLIDA"
fi
}
# Exemplo de uso
read -p "Digite a IE de Minas Gerais (13 dígitos): " ie
if [[ $ie =~ ^[0-9]{13}$ ]]; then
validate_ie_mg $ie
else
echo "Formato inválido! A IE deve ter exatamente 13 dígitos."
fi
| IE de MG | Saída do Script |
|---|---|
| 0623079050042 | VÁLIDA |
| 0623079050043 | INVÁLIDA |
| 0623079050040 | INVÁLIDA |
Com este script Bash, você automatiza completamente a validação de Inscrições Estaduais de Minas Gerais, eliminando erros manuais e processando dados em segundos. O método é robusto, seguindo exatamente o algoritmo oficial do estado, e pode ser facilmente integrado em pipelines de validação maiores.