GNU/Linux >> Tutoriales Linux >  >> Linux

Número aleatorio entre rango en shell

¿Qué tal usar los nanosegundos del tiempo del sistema?

date +%N

No es como si necesitaras números criptográficamente útiles aquí.

Según la versión de /bin/sh es, usted puede ser capaz de hacer:

$(( date +%N % 60 ))

Si no es compatible con $(()) sintaxis, pero tiene dc, puede probar:

dc -e `date +%N`' 60 % p'

Sin saber que sistema operativo, versión de /bin/sh o qué herramientas están disponibles, es difícil encontrar una solución que garantice que funcione.


Si tienes tr, head y /dev/urandom, puedes escribir esto:

tr -cd 0-9 </dev/urandom | head -c 3

Luego, debe usar el operador de resto para ingresar un rango de 0 a 60.


¿Tienes awk? Puede llamar a la función rand() de awk. Por ejemplo:

awk 'BEGIN { printf("%d\n",rand()*60)  }' < /dev/null

Linux
  1. Símbolo de acento grave (`) en Linux Shell Scripting

  2. ¿Diferencia entre las llamadas al sistema statvfs() y statfs()?

  3. Encuentra archivos creados entre un rango de fechas

  4. Script de shell de Linux para la copia de seguridad de la base de datos

  5. ¿Diferencia entre '{}' y {} en el comando de búsqueda?

Expresión de secuencia Bash (rango)

Cómo cambiar el shell predeterminado en el sistema Linux

Maneras simples de generar una contraseña aleatoria en Linux Shell

¿Diferencia entre Shell de inicio de sesión y Shell sin inicio de sesión?

Una guía para el comando superior en Linux

Cómo mantener actualizado Rocky Linux 8