shell中的范围之间的随机数

Adr*_*ian 6 linux random shell

如何在sh(0/sh/sh,而不是bash)中生成0-60之间的随机数?这是一个卫星箱,没有$RANDOM变量,和其他商品[cksum,od(od -vAn -N4 -tu4 </ dev/urandom)].

我想随机化一个crontab作业的时间.

The*_*ard 8

如何使用纳秒的系统时间?

date +%N
Run Code Online (Sandbox Code Playgroud)

这不像你需要加密有用的数字.

根据它的版本/bin/sh,您可以执行以下操作:

$((date +%N%60))

如果它不支持$(())语法,但你有dc,你可以尝试:

dc -e `date +%N`' 60 % p'
Run Code Online (Sandbox Code Playgroud)

在不知道哪种操作系统,版本/bin/sh或工具可用的情况下,很难找到一种可以保证工作的解决方案.


mar*_*rco 8

如果你有tr,head和/ dev/urandom,你可以这样写:

tr -cd 0-9 </dev/urandom | head -c 3
Run Code Online (Sandbox Code Playgroud)

然后你必须使用余数运算符放入0-60范围.