为什么Bash的$ RANDOM没有在某些计算机上播种(?)? [英] Why is Bash’s $RANDOM not seeded (?) on some machines?

查看:97
本文介绍了为什么Bash的$ RANDOM没有在某些计算机上播种(?)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我注意到在某些机器上(所有openSUSE 11.2在相同的硬件上),每个Bash shell都会为$RANDOM输出相同的值序列:

I noticed that on some machines (all openSUSE 11.2 on identical hardware) every Bash shell would output the same sequence of values for $RANDOM:

$ bash -c 'for i in `seq 10`; do echo -n "$RANDOM "; done; echo'
17767 9158 6249 18547 23633 23807 5194 22764 7977 31949 
$ bash -c 'for i in `seq 10`; do echo -n "$RANDOM "; done; echo'
17767 9158 6249 18547 23633 23807 5194 22764 7977 31949

所有这些机器上的顺序都是相同的.似乎随机数生成器没有播种?为什么会发生以及如何解决?

The sequence is the same across all these machines. It seems that the random number generator is not seeded? Why does it happen and how to fix it?

在我的个人计算机上,每次我调用上述命令时,数字都是不同的.

On my personal machine the numbers are different every time I call above command.

推荐答案

您可以为其播种:

bash -c 'RANDOM=$$; for i in `seq 10`; do echo -n "$RANDOM "; done; echo'

bash -c 'RANDOM=`date +%s`; for i in `seq 10`; do echo -n "$RANDOM "; done; echo'

这篇关于为什么Bash的$ RANDOM没有在某些计算机上播种(?)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆