Я пытаюсь заставить мой сценарий произвольно останавливаться между 20 и 10 секундами, где максимальное время составляет 20 и минимум 10. Я использую этот атм:
sleep $((10 + RANDOM % 20));
Но проблема является то, что он игнорирует предел 20 и выходит за рамки этого. Есть ли другой путь?
10 и 20 не являются минимальными и максимальными случайных чисел. Выражение простое математическое. %
означает по модулю.
Вы хотите
sleep $((10 + RANDOM % 11));
Это 11
, потому что 10-20 это 11 чисел.
Кроме того, вы можете использовать shuf
:
sleep $(shuf -i 10-20 -n 1)