$RANDOM im Schlaf

$RANDOM im Schlaf

Ich versuche, mein Skript so einzustellen, dass es zufällig zwischen 20 und 10 Sekunden pausiert, wobei die maximale Zeitspanne 20 und die minimale Zeitspanne 10 Sekunden beträgt. Momentan verwende ich Folgendes:

sleep $((10 + RANDOM % 20));

Das Problem ist jedoch, dass die Grenze von 20 nicht beachtet wird und darüber hinausgeht. Gibt es einen anderen Weg?

Antwort1

10 und 20 sind nicht das Minimum und Maximum der Zufallszahl. Der Ausdruck ist einfache Mathematik. %bedeutet Modulo.

Sie wollen

sleep $((10 + RANDOM % 11));

Das liegt 11daran, dass 10-20 11 Zahlen sind.


Alternativ können Sie Folgendes verwenden shuf:

sleep $(shuf -i 10-20 -n 1)

Antwort2

zum Schlafen zufällige Millisekunden

t=$(shuf -i 0-9 -n1)

sleep 0."$t"

verwandte Informationen