该脚本主要用于产生一定范围内的随机数比如(1..10),并且最后输出的随机数没有重复的随机数:
[root@web-db masterbash]# cat random.sh
#!/bin/bash
max_number=10
seed=1;
numbers=()
if [ ${#numbers[@]} -eq 0 ];then
number=$((RANDOM%$max_number+$seed))
numbers+=($number)
fi
while :
do
initial=1
number=$((RANDOM%$max_number+$seed))
for num in $(seq 0 ${#numbers[@]})
do
if [ "${numbers[$num]}" = "$number" ];then
initial=0
break
fi
done
if [ $initial -eq 1 ];then
numbers+=($number)
fi
if [ ${#numbers[@]} -eq 10 ];then
break
fi
done
echo ${numbers[*]}
[root@web-db masterbash]#
[root@web-db masterbash]# bash random.sh
7 8 6 4 1 2 5 9 3 10
[root@web-db masterbash]#
主意:如果需要生产的随机数很多,比如成千上万,该脚本会非常的头疼,速度异常的缓慢。
阅读(575) | 评论(0) | 转发(0) |