
Я пытаюсь заставить свой скрипт делать паузу случайным образом на 20-10 секунд, где максимальное время составляет 20, а минимальное — 10. Я использую это:
sleep $((10 + RANDOM % 20));
Но проблема в том, что он игнорирует ограничение в 20 и выходит за его пределы. Есть ли другой способ?
решение1
10 и 20 не являются минимумом и максимумом СЛУЧАЙНОГО числа. Выражение представляет собой простую математику. %
означает остаток от деления.
Вы хотите
sleep $((10 + RANDOM % 11));
Потому 11
что 10-20 — это 11 чисел.
В качестве альтернативы вы можете использовать shuf
:
sleep $(shuf -i 10-20 -n 1)
решение2
для сна случайные миллисекунды
t=$(shuf -i 0-9 -n1)
sleep 0."$t"