Skip to content

Instantly share code, notes, and snippets.

@davialexandre
Created October 5, 2012 22:49

Revisions

  1. davialexandre created this gist Oct 5, 2012.
    31 changes: 31 additions & 0 deletions gerador-cpf.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,31 @@
    #!/bin/bash
    SOMA=0
    for i in {10..2}
    do
    NUMERO=$((`cat /dev/urandom|od -N1 -An -i` % 9))
    CPF=$CPF$NUMERO
    SOMA=$(($SOMA+($NUMERO*$i)))
    done
    RESTO=$(($SOMA%11))
    if [ $RESTO -lt 2 ]
    then
    DIGITO1=0
    else
    DIGITO1=$((11-$RESTO))
    fi
    CPF=$CPF$DIGITO1
    SOMA=0
    for i in {11..2}
    do
    INDICE=$((($i-11)*-1))
    SOMA=$(($SOMA+(${CPF:$INDICE:1}*$i)))
    done
    RESTO=$(($SOMA%11))
    if [ $RESTO -lt 2 ]
    then
    DIGITO2=0
    else
    DIGITO2=$((11-$RESTO))
    fi
    CPF=$CPF$DIGITO2
    echo $CPF