Generar un número aleatorio en Bash

Generar un número aleatorio en Bash
El número que se cambia en cada ejecución de script se llama número aleatorio, y es impredecible. Los números aleatorios se utilizan en la programación para diversos fines, como probar datos, generar boletos de lotería, generar una contraseña, etc. El número entero o el número flotante se puede usar para generar un número aleatorio en Bash. El número aleatorio de un rango específico o un tamaño se puede generar utilizando un script bash. Se han mostrado diferentes formas de generar números aleatorios en bash en este tutorial.

Uso de generador aleatorio:

El número aleatorio o un rango de números aleatorios se puede generar utilizando la variable $ aleatoria. Genera un número aleatorio entre 0 y 32767 de forma predeterminada. Pero puede establecer el rango de números para generar números aleatorios dividiendo el valor de $ aleatorio con un valor específico. Diferentes usos de la variable $ aleatoria para generar números aleatorios se muestran en la siguiente parte del tutorial.

Generación de números aleatorios utilizando $ Variable aleatoria:

Las formas de generar el número aleatorio en el terminal y ejecutar un archivo de script se muestran aquí.

A. Generar números aleatorios desde el terminal

Ejecute el siguiente comando para generar un número aleatorio dentro del rango 0 a 32767.

$ Echo $ Random

Puede generar un número aleatorio de un rango específico dividiendo la variable $ aleatoria con un valor particular y obteniendo el valor restante. Ejecute el siguiente comando para generar un número aleatorio dentro del rango de 1 a 50. Aquí, se han utilizado los primeros primeros soportes con $.

$ Echo $ (($ Random % 50 + 1))

Ejecute el siguiente comando para generar un número aleatorio dentro del rango de 10 a 40. Aquí, el tercer soporte con $ se ha utilizado.

$ Echo $ [$ Random % 40 + 10]

B. Generar números aleatorios usando el script

Cree un archivo bash con el siguiente script para generar un número aleatorio del rango específico donde se tomarán los valores de rango mínimo y máximo del usuario. Se mostrará un mensaje de error si el valor máximo tomado es menor que el valor mínimo. Si la diferencia entre el valor máximo y mínimo es 1, se mostrará otro mensaje de error. Se generará un número aleatorio en cada ejecución de este script si los valores mínimos y máximos válidos se tomarán como entrada.

#!/bin/bash
# Generar un rango basado al azar definido por el usuario
#Ate el valor inferior y superior del usuario
echo "Ingrese el valor mínimo:"
Leer mínimo
echo "Ingrese el valor máximo:"
Leer el máximo
#Chek Los valores tomados son válidos
Si [[$ máximo < $minimum ]]; then
echo "El valor máximo no puede ser inferior al valor mínimo"
Salir 1
FI
#Encuentra la diferencia entre los números
diff = $ (($ máximo- $ mínimo))
#Chek el valor de diferencia
if [[$ diff == 1]]; entonces
Echo "El rango de números debe ser más de 1"
Salir 1
FI
#Genere el número aleatorio
RandomNumber = $ (($ mínimo + $ $ Random % $ máximo))
#Imprima el número generado
echo "El número aleatorio generado es: $ randomnumber"

La siguiente salida aparecerá si el script se ejecuta varias veces. Aquí, el script anterior se ha ejecutado tres veces. El mensaje de error se ha imprimido para las dos primeras ejecuciones para una entrada no válida, y se ha generado un número aleatorio para la última ejecución.

Generación de números aleatorios usando el comando 'shuf':

Usar el comando 'shuf' es otra forma de generar el número aleatorio de un rango específico. Las formas de generar un número aleatorio desde el terminal y usar un script se han mostrado en este tutorial.

A. Generar números aleatorios desde el terminal

Ejecute el siguiente comando para generar un número aleatorio entre 0 a 50 usando el comando 'shuf'.

$ shuf -i 0-50 -n1

Según la siguiente salida, el comando anterior se ha ejecutado tres veces y se han generado tres números aleatorios.

B. Generar números aleatorios usando el script

Cree un archivo bash con el siguiente script para generar una lista de números aleatorios basado en el valor de entrada. El bucle 'para' se ha utilizado para ejecutar el comando 'shuf' varias veces para generar la lista de números aleatorios entre 1 a 100 e imprimir los números.

#!/bin/bash
# Generar un comando aleatorio usando 'shuf'
echo "¿Cuántos números aleatorios quieres generar??: "
número de lectura
#Imprimir los números aleatorios generados
echo "Los números aleatorios generados son:"
para n en 'seq "$ número"'
hacer
randomNumber = $ (shuf -i 1-100 -n1)
Echo $ randomnumber
hecho

La siguiente salida muestra que se han tomado 5 como valor de entrada, y se han generado 5 números aleatorios, que no son más de 100 y no menos de 1.

Generación de números aleatorios usando /dev /urandom:

El /dev /urandom se puede usar con diferentes comandos para generar diferentes tipos de valores aleatorios. No se puede usar para especificar los valores de rango como el comando 'shuf' y la variable $ aleatoria. Pero el número de dígitos del número aleatorio se puede definir en el comando con /dev /urandom. El uso del comando 'OD' con /dev /urandom ha demostrado en la siguiente parte de este tutorial. Este comando se puede usar para especificar el número de bytes donde cada byte se puede definir mediante un número decimal dentro de 0 a 255.

Ejecute el siguiente comando para generar un número aleatorio entre 0 y 255.

$ od -a n -t d -n 1 /dev /urandom

La salida muestra que el comando anterior se ha ejecutado tres veces, y se han generado tres números aleatorios diferentes aquí donde los valores no son más de 255.

Conclusión:

Se han explicado tres formas diferentes de generar números aleatorios en este tutorial utilizando varios ejemplos. El codificador puede generar un rango específico de números aleatorios utilizando el comando $ aleatoria o 'shuf' en bash. El codificador puede usar /dev /urandom con cualquier otro comando para generar un número aleatorio de bytes o longitudes particulares. Generar números aleatorios es un requisito muy común para la programación, y espero que los lectores puedan generar un número aleatorio basado en sus requisitos después de leer este tutorial.