
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 11
daran, 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"