Saiba como gerar números aleatórios do terminal Linux

Saiba como gerar números aleatórios do terminal Linux

Gerar números aleatórios pode ser muito útil. Em geral, pessoas que fazem sorteios na internet, ou precisam atribuir números que não podem se repetir costuma usar soluções web. Mas, saiba que é possível gerar números aleatórios através o Terminal Linux. Para isso, vamos usar uma variável pouco conhecido, mas que pode ser muito útil neste caso.

No entanto, lembre-se que há outros meios de gerar números aleatório no Linux, porém, de forma pessoal, considero essa a mais fácil. E não se preocupe, todos os comandos são seguros, mas se você tem curiosidade, temos uma lista com os comandos Linux mais perigosos, e que você nunca deve executá-los a menos que saiba o que está fazendo.

Variável Linux $RANDOM

Se precisamos gerar números aleatórios pelo Terminal no Linux então vamos usar a variável $RANDOM. Com essa variável é possível gerar diversos números randomicamente em um intervalo que vai do 0 até 32767. Mas, vamos lá, o comando para gerar números aleatórios no Terminal Linux é:

Terminal
echo $RANDOM

Observe que neste comando anterior os números serão gerados automaticamente, mas sem nenhuma predefinição.

Gerar números aleatórios utilizando intervalos

Agora, vamos gerar números aleatórios com alguns parâmetros. Eles são úteis quando você precisa gerar números randômicos pelo Terminal Linux para alguma necessidade específica. Digamos que você queira gerar números de 0 até 30, então o comando deve ser igual ao descrito abaixo:

Terminal
a=$(( $RANDOM % 31 ))
echo $a

Você precisa ficar atento ao comando anterior. Note que o comando é representando por intervalo, então você precisa sempre dispor o intervalo, note que antes do 31 é o número 30, então até o 30 será gerado estes números. Outro exemplo, se você quer números até o 50, no lugar do 31 escreva 51, e assim por diante.

Script para gerar números aleatórios no Terminal Linux

saiba-como-gerar-numeros-aleatorios-do-terminal-linux

Agora, vamos dar um upgrade. Ao invés de comandos digitados, por mais que sejam simples, é possível gerar números aleatórios utilizando um script simples no Linux. Para começar vamos criar o script com um simples comando.

Terminal
sudo vim numeroaleatorio.sh

Agora, com o arquivo aberto, copie e cole os dados do modelo abaixo:

#!/bin/bash

echo "Digite o menor numero:"

read smallest

echo "Digite o maior numero:"

read largest

if [[ $largest < $smallest ]]; then

echo "Estes numeros nao sao validos"

exit 1

fi

change=$(( $largest-$smallest ))

if [[ $change == 1 ]]; then

echo "O intervalor dos numeros devem ser maior que 1"

exit 1

fi

randomnumber=$(( $RANDOM % $largest + 1))

echo "O numero aleatorio eh: $randomnumber"

Gerar números aleatório com o comando shuf no Linux

Mas, se por algum motivo as opções que apresentamos anteriormente não satisfaça a finalidade que você precisa, saiba que temos mais uma opção. Com o comando shuf você também pode gerar números aleatórios pelo Terminal Linux. Lembrando da mesmo a lógica que citamos antes, lembre-se dela, e vamos determinar o intervalo.

Digamos que você queira gerar número com o intervalo de 9 e 59, a sintaxe do comando é:

Terminal
shuf -i 9-59 -n1

Comando tr para gerar números aleatórios no Linux utilizando o Terminal Linux

Agora, vamos falar do comando tr. Neste modelo você pode gerar números randômicos determinando quantos dígitos você precisa. Então, com o comando tr você pode gerar números aleatórios escolhendo a quantidade de dígitos. Então, se você precisa gerar números com 8 ou 10 dígitos, os comandos devem ser assim:

Para gerar números aleatórios com 8 dígitos o comando é:

Terminal
tr -cd "[:digit:]" < /dev/urandom | head -c 8

E seguindo a mesma lógica, o comando para gerar números aleatórios pelo Terminal Linux com 10 dígitos é:

Terminal
tr -cd "[:digit:]" < /dev/urandom | head -c 7

É isso, agora você já sabe várias formas de gerar números aleatórios, fazendo algumas escolhas e personalizações. Inclusive, mostramos um simples scripts que pode até ajudar. Qualquer dúvida estamos no Telegram em @sitesempreupdate.