求脚本:5个1-50之间的不同随机数

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
ebok
帖子: 852
注册时间: 2008-02-15 0:09
送出感谢: 0
接收感谢: 0

求脚本:5个1-50之间的不同随机数

#1

帖子 ebok » 2011-02-12 22:24

ABS的作业,头都大了
随机数可以用
$((RANDOM%52/3*3+1))
得出
但剩下的循环啊,判断啊,数组傻傻搞不清楚。
求指点。
上次由 ebok 在 2011-02-18 11:50,总共编辑 1 次。
Somebody think they are full of niubility, so they play a zhuangbility, but only reflect their shability.
头像
astolia
论坛版主
帖子: 3201
注册时间: 2008-09-18 13:11
送出感谢: 1 次
接收感谢: 538 次

Re: 求脚本:5个0-50之间的不同随机数

#2

帖子 astolia » 2011-02-13 11:59

代码: 全选

a=-1;b=-1;c=-1;d=-1;e=-1;r=-1;
for i in a b c d e;do
while [ $r -eq $a -o $r -eq $b -o $r -eq $c -o $r -eq $d -o $r -eq $e ];do
r=$((RANDOM%51))
done
eval $i=$r
done
echo $a $b $c $d $e
sk1418
帖子: 229
注册时间: 2007-07-01 17:36
系统: (En):System
来自: (En):address
送出感谢: 2 次
接收感谢: 3 次
联系:

Re: 求脚本:5个0-50之间的不同随机数

#3

帖子 sk1418 » 2011-02-16 0:18

楼上的可以。但是如果是要取10个,20个,就麻烦点了。

试着写了一个下面的
1-50之间取

代码: 全选

#!/bin/bash

RESULT=""
while [ $(echo "$RESULT" |grep -oE "[0-9]+"|wc -l) -ne 5 ] 
do
    ran=$RANDOM
    let "ran %= 50"
    [ $ran -eq 0 ] && ran=1
    [ $(echo "$RESULT"|grep -c "$ran") -eq 0 ] && RESULT="$RESULT $ran"
done
echo $RESULT
---
regards,

Kent
头像
bzcy
帖子: 3
注册时间: 2007-01-20 20:38
送出感谢: 0
接收感谢: 0

Re: 求脚本:5个0-50之间的不同随机数

#4

帖子 bzcy » 2011-02-17 11:18

mark

学习下随机数的操作。
头像
Ce L-sky
帖子: 54
注册时间: 2011-02-11 12:02
系统: cent Ub winxp,03,7,8
送出感谢: 0
接收感谢: 0
联系:

Re: 求脚本:5个0-50之间的不同随机数

#5

帖子 Ce L-sky » 2011-02-18 10:04

我的帖子里有这个东东
回复

回到 “Shell脚本”