Compare Preços no Buscape e no BondFaro
BuscaPé, líder em comparação de preços na América Latina

HP AMD Turion 64 X2 1.9 GHz
2 Gb RAM - 160 Gb HD

George e o Segredo do Universo
Stephen Hawking, Lucy Hawking

Olympus X-775
7.1 Megapixels

Heroes
Primeira Temporada

CD Awake
Dream Theater

Receptor TV ( USB )

Patinho Faminto
www.patinho.net

Apostilas
Expr Regular
Remasterização
SED
Shell Script

Distros
Dizinha
Patinho Faminto

Nerd
Desejo Nerd
Shell Scripts

Artístico
Livro
Musica
Poesias
Tirinhas

Bobagens
Ascii Art
Games Antigos
Porque Amar Nerds
Porque Não Amar Nerds

Eu
About Me
Recomendo
Contato
DOAÇÕES

Amigos
Aurélio
Jogos Antigos
NeoDizinha
Nerds Nervosos
ProibidoParaNormais


* = Recentemente Atualizado



website stats
Locations of visitors to this page

Anúncio provido pelo BuscaPé
BuscaPé, líder em comparação de preços na América Latina

Ver Indice Geral da Apostila de Shell Script

RANDOM, números aleatórios

O RANDOM gera um número aleatório de 0 a 32767. Para utilizá-lo basta digitar "$RANDOM".
Exemplo:

aleatorio1.sh

echo "$RANDOM"

Pode-se colocar o valor sorteado em uma variável
Para isso:

aleatorio2.sh

sorteio=$RANDOM
echo "Eu escolhí $sorteio"

 
 

Repare que SEMPRE que for imprimir o $RANDOM ele escolherá um novo número, mesmo quando colocado em seguida
Veja só:

aleatorio3.sh

echo "$RANDOM $RANDOM"
Mostrará na tela
4646 5101

 
 

Por isso é importante armazenar o número escolhido em uma variável.
Vamos escrever um script que sorteia um número e pede para o usuário tentar adivinhar o número.

adivinhacao.sh

sorteio=$RANDOM

echo "Que número estou pensando?"
read resposta

if [ $sorteio -eq $resposta ]
then
	echo "Parabéns acertou"
else
	echo "Você errou. Eu escolhí $sorteio"
fi

 
 

Mas é muito difícil acertar um número de 0 a 32767. Como fazer o computador escolher apenas um número de 0 a 20?
Para isso usaremos a operação matemática para resto de divisão %. Veja como fica:

adivinhacao2.sh

sorteio=$((RANDOM % 21 ))

echo "Estou pensando em um número de 0 a 20. Que número estou pensando?"
read resposta

if [ $sorteio -eq $resposta ]
then
	echo "Parabéns acertou"
else
	echo "Você errou. Eu escolhí $sorteio"
fi

A primeira vista parece estranho, mas vamos pensar com calma
O RANDOM escolhe um número qualquer e em seguida pegamos o resto da divisão por 21.
Por que 21?
Se dividimos um número por 21 o maior resto possível é 20 e o menor resto possível é 0.
Bem simples ;D

 
 

Mas e se eu quiser sortear um número de 1 a 20?
Para isso faremos:

adivinhacao3.sh

sorteio=$((RANDOM % 20 + 1))

echo "Estou pensando em um número de 1 a 20. Que número estou pensando?"
read resposta

if [ $sorteio -eq $resposta ]
then
	echo "Parabéns acertou"
else
	echo "Você errou. Eu escolhí $sorteio"
fi

Quando divimos por 20, o maior resto possível é o 19 e o menor é o 0. Correto?
Se após o número ser sorteado for somado 1 a esse número, então o maior número possível será 20 e o menor será 1.
Exatamente o que queríamos ;D

 
 

Nota: 10

Votar:
Postado em: 2008-03-13

Ver Indice Geral da Apostila de Shell Script

Doações
Se quer nos ajudar, pode doar pelo PagSeguro

Ou pode doar pelo Paypal clicando no botão DONATE

Compare Produtos, Lojas e Preços


As poesias devem virar um livro impresso?
Claro
Só se tiver menos de 60 páginas
Só se tiver entre 60 e 120 páginas
Só se tiver mais que 120 páginas
Só vou comprar se for barato
Só vou comprar para você ficar feliz
Livro? Que Livro? Que poesia?
Resultado