linux编写随机数脚本,shell编程中指定范围的随机数生成实现代码示例

1.shell获取指定范围的随机数

1.1 获取F范围【1-E】内的随机数

echo $((RANDOM%E+1))

1.2 获取40范围【1-40】的随机数

echo $((RANDOM%40+1))

shell脚本生成[4,9]范围内的随机整数,包含边界值4和9,并将随机数序列存放在一个数组中。

功能要求:

要求不能有重复的随机数. 参考:shell不重复随机数生成方法(模拟彩票随机抽奖)

代码示例:

#!/bin/sh

declare -a arr  #声明arr为数组

arr=(`seq 4 9 | awk 'BEGIN{srand();ORS=" "} {b[rand()]=$0} END{for(x in b) print b[x]}'`)

echo ${arr[*]}  #打印数组array的所有元素

exit 0

程序说明:

生成[4,9]范围内不重复的随机整数,并保存到数组arr中。

seq 4 9 用于生成4~9的整数序列(包含边界值4和9)。

awk中的rand() 函数用于随机产生一个0到1之间的小数值(保留小数点后6位)。

由于rand()只生成一次随机数,要使用srand() 函数使随机数滚动生成(括号里留空即默认采用当前时间作为随机计数器的种子)。www.jbxue.com这样以秒为间隔,随机数就能滚动随机生成了。

限制:

由于以秒为间隔,所以如果快速连续运行两次脚本(1s内),发现生成的随机数还是一样的。

2.shell生成指定范围随机数与随机字符串

2

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值