#!/bin/bash

# 每次调用$RANDOM都会返回不同的随机整数.
# 一般范围为: - (有符号的16-bit整数). MAXCOUNT=
count= echo
echo "$MAXCOUNT random numbers:"
echo "-----------------"
while [ "$count" -le $MAXCOUNT ] # 产生10 ($MAXCOUNT)个随机整数.
do
number=$RANDOM
echo $number
let "count += 1" # 增加计数.
done
echo "-----------------" # 如果你需要在特定范围内产生随机整数, 那么使用'modulo'(模)操作
# 取模操作会返回除法的余数. RANGE= echo number=$RANDOM
let "number %= $RANGE"
# ^^
echo "Random number less than $RANGE --- $number" echo # 如果你需要产生一个大于某个下限的随机整数.
#+ 那么建立一个test循环来丢弃所有小于此下限值的整数. FLOOR= number= #初始化
while [ "$number" -le $FLOOR ]
do
number=$RANDOM
done
echo "Random number greater than $FLOOR --- $number"
echo # 让我们对上边的循环尝试一个小改动, 如下:
# let "number = $RANDOM + $FLOOR"
# 这将不再需要那个while循环, 并且能够运行的更快. # 结合上边两个例子, 来在指定的上下限之间来产生随机数.
number= #initialize
while [ "$number" -le $FLOOR ]
do
number=$RANDOM
let "number %= $RANGE" # 让$number依比例落在$RANGE的范围内.
done
echo "Random number between $FLOOR and $RANGE --- $number"
echo # 产生二元值, 就是, "true" 或 "false" 两个值.
BINARY=
T=
number=$RANDOM let "number %= $BINARY"
# 注意 let "number >>= 14" 将会给出一个更好的随机分配.if [ "$number" -eq $T ]
then
echo "TRUE"
else
echo "FALSE"
fi echo # 抛骰子.
SPOTS= # 模6给出的范围是0 - .
# 加1会得到期望的范围1 - .
die1=
die2= # 每次抛骰子, 都会给出均等的机会. let "die1 = $RANDOM % $SPOTS +1" # 抛第一次.
let "die2 = $RANDOM % $SPOTS +1" # 抛第二次.
# 上边的算术操作中, 哪个具有更高的优先级呢 --
#+ 模(%) 还是加法操作(+)? let "throw = $die1 + $die2"
echo "Throw of the dice = $throw"
echo exit

shell产生随机数的更多相关文章

  1. 【转】linux shell实现随机数多种方法(date,random,uuid)

    在日常生活中,随机数实际上经常遇到,想丢骰子,抓阄,还有抽签.呵呵,非常简单就可以实现.那么在做程序设计,真的要通过自己程序设计出随机数那还真的不简单了.现在很多都是操作系统内核会提供相应的api,这 ...

  2. 使用shell生成随机数

    #!/bin/bash $` do $` do s=$(($RANDOM%)) done done 第1行:#!/bin/bash是指此脚本使用/bin/bash来解释执行.其中,#!是一个特殊的表示 ...

  3. shell产生随机数七种方法

    shell实例浅谈之三产生随机数七种方法   一.问题 Shell下有时需要使用随机数,在此总结产生随机数的方法.计算机产生的的只是“伪随机数”,不会产生绝对的随机数(是一种理想随机数).伪随机数在大 ...

  4. shell生成随机数的几种方法

    一.通过内部系统变量($RANDOM) 生成0-32767之间的整数随机数,若超过5位可以加个固定10位整数,然后进行求余. [root@web01 scripts]# echo $RANDOM [r ...

  5. linux shell实现随机数多种方法(date,random,uuid)

    参考: http://www.cnblogs.com/chengmo/archive/2010/10/23/1858879.html $ cat /proc/sys/kernel/random/uui ...

  6. shell获取时间的相关命令

    Linux shell获取时间和时间间隔(ms级别) 说明:在进行一些性能测试的时候,有时候我们希望能计算一个程序运行的时间,有时候可能会自己写一个shell脚本方便进行一些性能测试的控制(比如希望能 ...

  7. Shell脚本字符串匹配及日常命令工具 - 用法总结(技巧指南)

    Shell提供了很多字符串和文件处理的命令,如awk.expr.grep.sed等命令,还有文件的排序.合并和分割等一系列的操作命令.下面重点总结下Shell字符串处理.文本处理以及各类命令及函数用法 ...

  8. 使用 shell 脚本自动获取发版指标数据

    问题背景 大一点的公司都会建立一套规章流程来避免低级错误,例如合入代码前必需经过同行评审:上线前必需提测且通过 QA 验证:全量前必需经过 1%.5%.10%.20%.50% 的灰度过程.尤其是最后一 ...

  9. 分享一例脚本发版和tomcat重启脚本

    线上有个网站业务部署在tomcat上,由于频繁上线修改,需要经常启动tomcat.tomcat服务自带的bin下没有重启脚本,下面分享一例脚本发版和tomcat重启脚本: 1)现将业务代码从svn里下 ...

随机推荐

  1. nopCommerce 3.9 接口笔记

    接口笔记 Nop.Services.Configuration ISettingService : 配置接口(查看) Nop.Services.Localization ILocalizationSe ...

  2. DesignPattern_Java:SingletonPattern

    单例模式 SingletonPattern Ensure a class has only one instance,and provide a global point of access to i ...

  3. 微信小程序开发实战视频教程发布

    昨日(9月23),腾讯终于发布了没有APPid,无需申请也可以进行微信小程序开发的视频教程了,我在在第一时间尝试并发布了这7个小视频教程,入门足够了.... 各位免费拿去,慢慢享用: 链接: http ...

  4. ssh远程无法连接VM中的Ubuntu问题

    Ubuntu ssh远程无法连接问题 1. 检查sudo ps -e|grep ssh  查看是否有ssh进程服务,如果没有的话,需要下载安装  sudo apt-get install openss ...

  5. svn服务配置

    1关闭所有svn服务 nie-xiao-bo-mac-pro:svnproject mac$ killall -9 svnserve 2.开启某文件路径svn服务 nie-xiao-bo-mac-pr ...

  6. range 的实现细节(start、end、step)(左闭右开区间)

    range(int start, int end, int step); 返回的区间是 [start, end) 要求步长为 step,三个参数均为整数, 在底层实现时,最终返回的区间元素的数目应当为 ...

  7. Linux限制资源使用的方法

    很多人说virmach不好,老是suspend,我从未被suspend过,建站也很稳定,所以我就来说说怎么操作(其实就是遵循他们的TOS,如果你是abusive user,滚粗): 先读读TOS,核心 ...

  8. eCognition学习记录

    作者:朱金灿 来源:http://blog.csdn.net/clever101 昨天公司从外面请了人讲解eCognition的最新进展及项目二次开发应用情况.我做了大致下面记录: 1.  eCogn ...

  9. Delphi程序员如何找到高薪的工作?(赚不到钱,原因只有一个,就是他们没有被公司录取。Delphi必须要独自进行深入研究,才能精通,同时也不能自由性太强)

    转帖自:http://www.tommstudio.com/ViewNews.aspx?ID=187http://hi.baidu.com/rarnu/blog/ 本文翻译自<美国优秀经理观念大 ...

  10. 解决 ubuntu 14.04.1 下一个sublime text3 3065 中国输入的问题

    你看今天 sublime text3 我以前有没有3059 的  它有支持3065该. 因此,为了支持subl  对中国输入法的实现 ,下面的操作步骤把我的记录供大家使用 有一个完整的教程:  htt ...