
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));
É 11
porque 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"