var=$RANDOM
创建随机数,但我怎么能指定一个范围之间0至12例如?外壳脚本随机数的生成
回答
如果你已经有你的随机数,你可以说
var=$RANDOM
var=$[ $var % 13 ]
从0..12
得到的数字。
编辑: 如果你想从$x
产生号码$y
,你可以很容易地修改此:
var=$[ $x + $var % ($y + 1 - $x) ]
在这里你去
echo $(($RANDOM % 12))
我希望这有助于。
此文件具有使用这种格式范围和地板可能有帮助的一些例子: http://tldp.org/LDP/abs/html/randomvar.html
0和12之间(包括):
echo $((RANDOM % 13))
编辑:请注意,此方法不严格正确。由于32768不是13的倍数,因此生成0到8的几率要比其余数字(9到12)略高(0.04%)。
这里是外壳的功能,应该给一个平衡输出:
randomNumber()
{
top=32768-$((32768%($1+1)))
while true; do
r=$RANDOM
[ r -lt $top ] && break
done
echo $((r%$1))
}
当然,更好的东西应该被设计如果范围的高值利用现有的SHUF超过32767
替代Linux操作系统(或者coreutils的是精确的):
var=$(shuf -i0-12 -n1)
呃。那么你的脚本是不可移植的。 – 2016-07-08 00:26:26
在FreeBSD和其他可能的BSD系统可以使用:
jot -r 3 0 12
这将创建3
从0到12的随机数,包含性。
另一种选择,如果你只需要每个脚本一个随机数,你可以这样做:
var=$(($$ % 13))
这将使用脚本作为种子,应该大部分随机的PID。范围将再次从0到12.
Mac OS X也不错。但不是Linux,所以这不是便携式的。 – 2016-07-08 00:28:14
- 1. 外壳脚本生成地图
- 2. 从外壳脚本函数
- 3. 生成随机数:计算随机生成的x次数
- 4. 外壳脚本UI
- 5. 随机数生成
- 6. 生成随机数
- 7. 生成随机数
- 8. 生成随机数
- 9. 生成随机数
- 10. 随机数生成
- 11. 脚本从数组中随机生成图片和文本
- 12. 随机数脚本访问生产非随机数VBA
- 13. 本机Prolog外壳
- 14. 随机数生成机制
- 15. 随机数生成器帮助不生成随机数 - C
- 16. 随机文本生成器
- 17. 随机样本生成器
- 18. 带外壳脚本的RAILS_ROOT
- 19. 简单的外壳脚本
- 20. 生成随机数的Array
- 21. Cuda的随机数生成
- 22. 随机数的生成
- 23. 随机()不生成随机数
- 24. 从随机长生成随机数
- 25. 基本程序生成随机数Python
- 26. 随机样本数据集生成器
- 27. 脚本中的随机数
- 28. 带外壳脚本的数字产品
- 29. 如何从matlab中的随机数生成器生成样本?
- 30. iMacro为twitter生成随机文本或随机数
纠正︰$(($ RANDOM%13)) – 2011-05-13 13:56:05
是的,同意,谢谢。我很高兴能先回答一个简单的问题,但我没有仔细检查!感谢2票(无论你是谁);-) – shellter 2011-05-13 14:03:23
注意内部$是可选的,因为发现的非数字字符串不能有变量名称。 – jlliagre 2011-05-13 14:45:20