$ALEATORIO mientras duermes

$ALEATORIO mientras duermes

Estoy intentando que mi secuencia de comandos se detenga aleatoriamente entre 20 y 10 segundos, donde la cantidad máxima de tiempo es 20 y la mínima 10. Estoy usando este cajero automático:

sleep $((10 + RANDOM % 20));

Pero el problema es que ignora el límite de 20 y va más allá. ¿Hay otra manera?

Respuesta1

10 y 20 no son el mínimo y el máximo del número ALEATORIO. La expresión es matemática simple. %significa módulo.

Quieres

sleep $((10 + RANDOM % 11));

Es 11porque 10-20 son 11 números.


Alternativamente, podrías usar shuf:

sleep $(shuf -i 10-20 -n 1)

Respuesta2

para dormir milisegundos aleatorios

t=$(shuf -i 0-9 -n1)

sleep 0."$t"

información relacionada