shell-script-pt
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]