$RANDOM 수면 중

$RANDOM 수면 중

최대 시간이 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"

관련 정보