[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Re: Validação CPF/CNPJ em shell-script
From: |
Silvano Bolfoni Dias |
Subject: |
Re: [shell-script] Re: Validação CPF/CNPJ em shell-script |
Date: |
Mon, 4 Aug 2003 15:44:26 -0300 |
Valtoir,
a construcao $((expressao)) no bash significa expansao aritmetica, ou seja,
ele faz a substituicao das variaveis que estiverem ali dentro (sem a
necessidade do $) e a avaliacao aritmetica da expressao.
[]'s
Silvano
----- Original Message -----
From: "Valtoir" <address@hidden>
To: <address@hidden>
Sent: Monday, August 04, 2003 3:02 PM
Subject: Re: [shell-script] Re: Validação CPF/CNPJ em shell-script
> Olá, Silvano.
>
> Legais as alterações que fizeste. Algumas eu já sabia que eram possíveis
mas
> não sabia como fazer, e outras são novidade para mim. Cara, eu não sabia
que
> o bash faz cálculo de módulo! Pude aprender bastante comparando o código
> antigo com o novo, e isso é muito legal. Só não caiu a ficha com relação
ao
> uso de parenteses dentro de parenteses, como na linha "pos=$((pos+1))". Se
> alguém puder fazer a gentileza de me explicar, agradeço.
>
> César, quando tiveres portado o filtro para C gostaria de ter uma cópia do
> fonte, se possível. Já fiz código de validação em clipper, vb, php e agora
> em bash. Acho que dá prá fazer uma home page só com códigos para checagem
de
> cic e cpnj 8-)
>
> Aproveitando o script para cic, fiz o filtro pra checagem de cnpj, ainda
sem
> validações.
>
> --------------- 8< corte aqui 8< --------------
> #!/bin/bash
> ## shell script em bash2 para validação de CNPJ
> ### escrito por Valtoir S. Jardim e Silvano Bolfoni Dias
> #### address@hidden
> ##### feito em 2003-08-04
> for digpos in 5 6
> do
> dig=0
> pos=0
> for fator in `seq $digpos 2` `seq 9 2`
> do
> dig=$((dig + ${1:$pos:1} * fator))
> pos=$((pos + 1))
> done
> dig=$((11 - dig % 11))
> [ $dig -ge 10 ] && dig=0
> [ $dig -ne ${1:$pos:1} ] && { echo "CNPJ invalido"; exit; }
> done
> echo "CNPJ valido"
> --------------- >8 --corte aqui -- >8--------------
>
> T+
>
> Valtoir