$RANDOM: 产生随机整数及双圆括号结构
来源:互联网 发布:百度域名注册服务费用 编辑:程序博客网 时间:2024/05/22 15:06
$RANDOM: 产生随机整数
$RANDOM 是Bash的内部函数 (并不是常量), 这个函数将返回一个伪随机整数, 范围在0 - 32767之间.
例:从一副扑克牌中取出一张随机的牌.
#/bin/bash# 随机抽取一张扑克Suites="ClubsDiamondsHeartsSpades"Denominations="2345678910JackQueenKingAce"suite=($Suites)denomination=($Denominations)num_suites=${#suite[*]}num_denominations=${#denomination[*]}echo -n "${denomination[$((RANDOM%num_denominations))]} of "echo ${suite[$((RANDOM%num_suites))]} exit 0
在一个指定范围内产生随机数的技巧.
# 在6到30之间产生随机数.rnumber=$((RANDOM%25+6))# 还是在6-30之间产生随机数,#+但是这个数还必须能被3整除.rnumber=$(( RANDOM%27/3*3+6))
范围公式:
rnumber=$(((RANDOM%(max-min+divisibleBy))/divisibleBy*divisibleBy+min))
/dev/urandom 设备文件提供了一种比单独使用$RANDOM更好的, 能够产生更加”随机”的随机数的方法. dd if=/dev/urandom of=targetfile bs=1 count=XX 能够产生一个很分散的伪随机数序列. 然而, 如果想要将这个数赋值到一个脚本文件的变量中, 还需要可操作性, 比如使用od命令,或者使用dd命令, 或者通过管道传递到md5sum命令中.
date命令也可以用来产生伪随机整数序列.
双圆括号结构
与let命令很相似, ((…))结构允许算术扩展和赋值.
例:
a=$(( 5+3 )) # 与let "a=5+3"等价.
双圆括号结构也被认为是在Bash中使用C语言风格变量操作的一种处理机制.
例:C语言风格的变量操作.
#!/bin/bash# 使用((...))结构操作一个变量,C语言风格的变量操作.echo(( a = 23 )) # c语言风格的变量赋值,"="两边允许有空格.echo "a (initial value) = $a"(( a++ )) # c语言风格的后置自加.echo "a (after a++) = $a"# (( a-- ))、(( ++a ))、(( --a ))类似.# 注意:就像在c语言中一样,前置或后置自减操作会产生一些不同的副作用.n=1; let --n && echo "True" || echo "False" # Falsen=1; let n-- && echo "True" || echo "False" # True echo (( t = a<45?7:11 )) #c语言风格的三元操作.echo "If a<45,then t = 7,else t = 11."echo "t = $t"exit 0
阅读全文
0 0
- $RANDOM: 产生随机整数及双圆括号结构
- Numpy之random.randint产生随机整数
- 产生随机整数序列
- 随机产生一个整数
- jQuery中 Math.random()的用法方法>>产生任意随机整数
- JS math.random随机数,产生指定范围内的随机整数的代码
- 利用Random类来产生5个20~50之间的随机整数
- 利用Random类产生5 个1-30之间(包括1和20)的随机整数。
- 随机产生算式(vector和random)
- Oracle之 【RANDOM】使用dbms_random.string产生随机字符串的用法及应用
- java7: 使用随进函数产生特定范围的随机整数及随机字符
- 第3章 shell结构化命令------------( 双圆括号命令及操作实例)
- JavaScript random方法得到随机整数
- JavaScript随机数函数,随机整数函数,random()
- JavaScript随机数函数,随机整数函数,random()
- JavaScript random方法得到随机整数(转)
- JavaScript random方法得到随机整数
- Python random模块(随机整数部分内容)
- 网易笔试题总结
- react-app
- vue组件学习6(props传参)
- Mac下使用node进程管理工具supervisor
- 物理服务器、VPS、云服务器、虚拟主机
- $RANDOM: 产生随机整数及双圆括号结构
- 南阳oj116--士兵杀敌(二)(线段树,更新,求和)
- 【原创】【百度之星2017初赛A】1001 小C的倍数问题
- 1.SoC时钟系统简介
- (CDOJ 844 线段树区间最大连续和 )<线段树的各种姿势>
- 别老扯什么Hadoop了,你的数据根本不够大
- Centos 上软raid 介绍和配置
- Spring4.X + Spring MVC + Mybatis3 零配置应用开发框架搭建详解(4)
- 1015. 德才论 (25)