睡眠中の$RANDOM

睡眠中の$RANDOM

スクリプトを 20 秒から 10 秒の間でランダムに一時停止させようとしています。最大時間は 20 秒、最小時間は 10 秒です。現在はこれを使用しています:

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

しかし、問題は 20 という制限を無視してそれを超えてしまうことです。他の方法はあるのでしょうか?

答え1

10 と 20 は RANDOM 数の最小値と最大値ではありません。この式は単純な数学です。%モジュロを意味します。

あなたが望む

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

1110から20までが11個の数字だからです。


あるいは、以下を使用することもできますshuf:

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

答え2

ランダムなミリ秒のスリープ

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

sleep 0."$t"

関連情報