Как генерировать случайные числа под OpenWRT? - PullRequest
0 голосов
/ 13 января 2011

С "нормальным" (я имею в виду "полным") дистрибутивом Linux, он работает просто отлично:

sleep $ (echo "$ [($ RANDOM% 9)]")

хорошо, он ждет около 0-9 секунд

, но в OpenWRT [без использования bash, скорее "ash"]:

$ sleep $ (echo "$ [($ RANDOM% 9)] ") sleep: недопустимое число '$ [' $

и почему:

$ echo" $ [($ RANDOM% 9)] "$ [(% 9)] $

Так есть ли у кого-нибудь способ генерировать случайные числа в OpenWRT, чтобы я мог поместить его в "сон"?

Спасибо

Ответы [ 2 ]

5 голосов
/ 30 марта 2012

Вы также можете использовать awk

sleep $(awk 'BEGIN{srand();print int(rand()*9)}')
5 голосов
/ 13 января 2011

Вы можете попробовать что-то вроде этого:

sleep `head /dev/urandom | tr -dc "0123456789" | head -c1`

, который работает на моем WhiteRussian OpenWRT роутере.

Я на самом деле не знаю, будет ли это всегда возвращать число, но когда это произойдет, оно всегда будет возвращать 0-9 и только 1 цифру (вы можете сделать так, чтобы оно доходило до 99, если вы сделали вторую голову - с2).

Удачи!

...