Shell脚本生成随机整数
Shell脚本生成随机整数
$RANDOM:使用当前的进程ID(PID)和当前时间/日期生成的,该时间/日期由自1970年以来经过的秒数定义。
1、urandom命令
grep -m1 -ao '[0-9]' /dev/urandom | sed s/0/10/ | head -n1
2、用$RANDOM
要生成范围:{0,..,9}
r=$(( $RANDOM % 10 ))
echo $r
要生成范围:{40,..,49}
r=$(( $RANDOM % 10 + 40 )); echo $r
3、伪随机生成器的示例
不能使用 $RANDOM 和 /dev/urandom 的情况
echo $(date +%S) | grep -o .$ | sed s/0/10/
或者 echo $(( ( RANDOM % 10 ) + 1 ))
4、使用bash生成随机数
请使用$RANDOM内部Bash函数。注意:$RANDOM不应用于生成加密密钥。
echo $RANDOM % 10 + 1 | bc
5、命令工具,例如gnushuf
shuf -i1-10 -n1
6、精确一些
如果你想使用$RANDOM,那么丢弃0 ... 32767中的最后8个数字会更精确,
只需将其视为0 ... 32759,因为从0 ... 32767 mod 10获得以下内容分配,因此,稍慢但更精确。
- 0-8 each: 3277
- 8-9 each: 3276
while :; do ran=$RANDOM; ((ran < 32760)) && echo $(((ran%10)+1)) && break; done
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具