$RANDOM durante o sono

$RANDOM durante o sono

Estou tentando fazer com que meu script pause aleatoriamente entre 20 e 10 segundos, onde o tempo máximo é 20 e o mínimo 10. Estou usando este caixa eletrônico:

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

Mas o problema é que desconsidera o limite de 20 e vai além disso. Existe outra maneira?

Responder1

10 e 20 não são mínimo e máximo do número RANDOM. A expressão é matemática simples. %significa módulo.

Você quer

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

É 11porque 10-20 são 11 números.


Alternativamente, você poderia usar shuf:

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

Responder2

para dormir milissegundos aleatórios

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

sleep 0."$t"

informação relacionada