Search code examples
openwrt

How to generate random numbers under OpenWRT?


With a "normal" (i mean "full") linux distro, it works just fine:

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

ok, it waits for about 0-9 sec

but under OpenWRT [not using bash, rather "ash"]:

$ sleep $(echo "$[ ($RANDOM % 9 ) ]") sleep: invalid number '$[' $

and why:

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

So does anyone has a way to generate random numbers under OpenWRT, so i can put it in the "sleep"?

Thank you


Solution

  • You might try something like this:

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

    Which works on my WhiteRussian OpenWRT router.

    I actually don't know if this will always return a number, but when it does, it will always return 0-9, and only 1 digit (you could make it go up to 99 if you made the second head -c2).

    Good luck!