分页: 1 / 1

生成0-50间随机数shell

发表于 : 2011-02-18 10:12
Ce L-sky

代码: 全选

#!/bin/bash
echo "输入执行次数"
read time;
{
MAXCOUNT=$time
count=0
while [ "$count" -lt "$MAXCOUNT" ]
do
RANDOM="date +%N%S%N"
let K="$RANDOM/650"
echo "$K"
let "count += 1"
sleep 0.1
done
}
#sleep 0.6	#如果要循环请去掉sleep前“#”;间隔时间,单位秒,可以为小数和0。
#source "/"	#如果要循环请去掉source前“#”;在引号内修改本文件路径。
这个脚本可以随机生成0-50之间数字并且可以自定义次数。

代码: 全选

#!/bin/bash
echo "输入执行次数"
read time;
{
MAXCOUNT=$time
count=0
while [ "$count" -lt "$MAXCOUNT" ]
do
RANDOM="date +%N%S%N"
let K="$RANDOM/700+1"
echo “----------------------------QQ892468592---------------------------------------------”
echo "$K"
let "count += 1"
sleep 0.1
done
}
#sleep 0.6	#如果要循环请去掉sleep前“#”;间隔时间,单位秒,可以为小数和0。
#source "/"	#如果要循环请去掉source前“#”;在引号内修改本文件路径。
这个就是改了一下生成算法,可以生成1-47之间的数【不知道是不是,循环1000次保存到了文本最大就是47了。】

Re: 生成0-50间随机数shell

发表于 : 2011-03-07 17:28
linyansi
我想请问一下两个问题:
RANDOM="date +%N%S%N"
let K="$RANDOM/650"
1.那个%N%S%N是什么意思呀?
2.为什么要除以650呢?

Re: 生成0-50间随机数shell

发表于 : 2011-03-07 19:36
astolia
$RANDOM是bash的内建功能,是一个0~32767之间的随机数,你前面赋值了个RANDOM变量完全没用,而且你赋值的方法也不对,纯粹给了个文本串
所以可以解释为什么/650后最大是50,/700+1后最大47
另外,一般都用求余来确定范围。比如你要0~50就$(($RANDOM%51))

Re: 生成0-50间随机数shell

发表于 : 2011-03-08 10:27
linyansi
谢谢3楼的解答!

Re: 生成0-50间随机数shell

发表于 : 2011-03-11 23:02
fanhe
有内建方法的
而且,也可以用系统的 /dev/ram 系列设备文件