Saltar al contenido

Generando un número aleatorio entre 1 y 10 en Bash Shell Script

Solución:

$(( ( RANDOM % 10 )  + 1 ))

EDITAR. Se cambiaron los corchetes a paréntesis según el comentario. http://web.archive.org/web/20150206070451/http://islandlinux.org/howto/generate-random-numbers-bash-scripting

La solución más simple sería utilizar una herramienta que le permita especificar directamente rangos, como gnu shuf

shuf -i1-10 -n1

Si quieres usar $RANDOM, sería más preciso descartar los últimos 8 números en 0 … 32767, y simplemente tratarlo como 0 … 32759, ya que tomando 0 … 32767 mod 10 obtienes la siguiente distribución

0-8 each: 3277 
8-9 each: 3276

Entonces, un poco más lento pero más preciso sería

while :; do ran=$RANDOM; ((ran < 32760)) && echo $(((ran%10)+1)) && break; done 

Para generar números aleatorios con bash, use la función interna Bash $ RANDOM. Tenga en cuenta que $ RANDOM no debe utilizarse para generar una clave de cifrado. $ RANDOM se genera utilizando su ID de proceso actual (PID) y la hora / fecha actual según lo definido por el número de segundos transcurridos desde 1970.

 echo $RANDOM % 10 + 1 | bc
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *