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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RES: RES: [shell-script] DIVISÃO POR ZERO


From: Thobias Salazar Trevisan
Subject: Re: RES: RES: [shell-script] DIVISÃO POR ZERO
Date: Wed, 7 May 2003 15:54:38 -0300 (BRT)

ae,

On Wed, 7 May 2003, Marco Eloy wrote:

>       Rapá, vc deveria lecionar!!!!!!

arghhh!!

>       Então o +1 do e-mail anterior é para alem de não fazer a divisão
> por zero,
> gerar números entre 1 e o divisor propriamente dito, do contrario ele só
> chegaria a gerar um numero no Maximo ate o divisor-1(ou seja, nunca
> pegaria
> o maior valo possível), já que a divisão exata tem resto 0(zero).

Para a explicação ficar completa. O problema é o seguinte:
script original.

gerar_senha(){
alpha="abcdefghijklmnopqrstuvwxyz0123456789"
for i in `seq 1 8`;do
 pos=$((RANDOM%${#alpha}))
 echo "$pos"
 s1=`echo $alpha|cut -c"$pos"`
 P1=$P1$s1
 alpha=$(echo $alpha|tr -d $s1)
done
}

quando RANDOM gera um número múltiplo de ${#alpha}, vai dar 0.
Tudo bem, então você faz um (echo $alpha|tr -d $s1), só que em
$s1 não tem nada 'echo $alpha | cut -c0'. então:

$ alpha=12345
$ alpha=$(echo $alpha|tr -d)
tr: only one string may be given when deleting without squeezing repeats
$ echo $alpha

$ echo "${#alpha}"
0

aí, na próxima execução vai ser RANDOM%0. erro.
como RANDOM%{#alpha} gera entre 0 e num_carac-1. O +1 serve pra
ele fazer entre 1 e número de caracteres e evitar o problema acima.

hi, acabou a pilha.

thobias
-------
echo 9446046325380026818553633794429812592304650P | dc
-------
http://www.lcp.coppe.ufrj.br/~thobias

____________________________
|
| Against - HTML Mail
| Against - MS ATTACHMENTS
|
----------------------------



reply via email to

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