Chinaunix首页 | 论坛 | 博客
  • 博客访问: 38170
  • 博文数量: 22
  • 博客积分: 285
  • 博客等级: 二等列兵
  • 技术积分: 237
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-18 20:02
个人简介

人生最大的悲哀莫过于迷失自我而无法自拔!

文章分类

全部博文(22)

文章存档

2013年(11)

2012年(11)

我的朋友

分类: LINUX

2012-12-22 00:03:08

该脚本主要用于产生一定范围内的随机数比如(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) |
给主人留下些什么吧!~~