
최대 시간이 20초에서 최소 10초인 20~10초 사이에 무작위로 스크립트를 일시 중지하려고 합니다. 다음 ATM을 사용하고 있습니다.
sleep $((10 + RANDOM % 20));
그런데 문제는 20이라는 제한을 무시하고 그 이상으로 넘어가는 것입니다. 다른 방법이 있나요?
답변1
10과 20은 RANDOM 숫자의 최소값과 최대값이 아닙니다. 표현은 간단한 수학입니다. %
모듈로를 의미합니다.
당신이 원하는
sleep $((10 + RANDOM % 11));
10~20은 11개의 숫자이기 때문이죠 11
.
또는 다음을 사용할 수 있습니다 shuf
.
sleep $(shuf -i 10-20 -n 1)
답변2
임의의 밀리초 동안 수면을 취하기 위해
t=$(shuf -i 0-9 -n1)
sleep 0."$t"