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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本生成[4,9]范围内的随机整数,包含边界值4和9,并将随机数序列存放在一个数组中,脚本实现?相关的知识,希望对你有一定的参考价值。

要求不能有重复的随机数

#!/bin/sh
declare -a arr #声明arr为数组
arr=(`seq 4 9 | awk 'BEGINsrand();ORS=" " b[rand()]=$0 ENDfor(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() 函数使随机数滚动生成(括号里留空即默认采用当前时间作为随机计数器的种子)。这样以秒为间隔,随机数就能滚动随机生成了。

限制:
由于以秒为间隔,所以如果快速连续运行两次脚本(1s内),你会发现生成的随机数还是一样的。
参考技术A #!/bin/bash

declare -a array #声明array是数组
for i in `seq 10` #产生10个随机数
do
array[$i]=$((RANDOM%6+4)) #RANDOM是bash shell内置的随机变量,表达式可修改
echo $array[$i] #打印验证
done

exit 0
至于不能有重复的随机数,LZ你再修改下吧!

以上是关于shell脚本生成[4,9]范围内的随机整数,包含边界值4和9,并将随机数序列存放在一个数组中,脚本实现?的主要内容,如果未能解决你的问题,请参考以下文章

Shell进阶脚本-生成随机数( $RANDOM )

在VB中,如何生成某个范围内的随机整数?

Shell脚本学习三:生成随机数

随机生成指定范围内的随机数,放在指定长度的数组内

JS生成限定整数区间范围内的随机整数

java生成指定范围内随机秒数