sexta-feira, 10 de agosto de 2012

Como gerar números aleatórios em script bash

Uma forma simples de gerar números aleatório em script bash é usando a função RANDOM.

echo $((RANDOM))

Você pode especificar um intervalo. Vamos supor que você queira um número entre 0 e 100.

echo $((RANDOM % 101))

No caso eu coloquei 101, que é o limite superior, excluindo o próprio 101.

Você também pode definir um intervalo onde o limite inferior seja diferente de zero. Por exemplo, um número entre 80 e 100, inclusive.

echo $((RANDOM % 21 + 80)

Ou seja, o primeiro número é o total de números do intervalo. O segundo número é o limite inferior.

Outro exemplo, gerar um número aleatório que seja -1, 0 ou 1.

echo $((RANDOM % 2 - 1))

Um último exemplo: que tal gerar números aleatórios para a Mega Sena?

for i in `seq 6` 
do
     echo $((RANDOM % 60 + 1))
done

3 comentários:

  1. Olá Ricardo!
    No seu exemplo da Mega Sena ficou faltando tratar das duplicidades. Tenho um script completo para Mega Sena, quem quiser posso enviar por email é só solicitar.
    Abraço.

    ResponderExcluir
    Respostas
    1. Muito bem observado, Henrique.

      Neste site também tem várias ferramentas para tratar de números aleatórios.

      http://www.random.org/

      Excluir
  2. Descobri agora uma limitação no comando RANDOM. Ela só aceita números abaixo de 100.000. Para gerar números maiores use o seguinte:

    $ echo $((RANDOM % 100000))$((RANDOM % 10))
    270539

    $ echo $((RANDOM % 100000))$((RANDOM % 100)
    1065237

    ResponderExcluir