Linux 决定性地从财富中产生产出
我的结果太随机了——为了使我的命运不具有任何科学意义,我需要遵循占星术的原则,以便选择的命运部分取决于,例如,月亮的相位。我已经整理了占星学方面的东西,得到了一个占星学上确定的数字,我可以用它作为一个随机种子 从这里开始,我希望能够:Linux 决定性地从财富中产生产出,linux,bash,unix,Linux,Bash,Unix,我的结果太随机了——为了使我的命运不具有任何科学意义,我需要遵循占星术的原则,以便选择的命运部分取决于,例如,月亮的相位。我已经整理了占星学方面的东西,得到了一个占星学上确定的数字,我可以用它作为一个随机种子 从这里开始,我希望能够: 输出第n个财富,或 设定命运使用的随机种子 我可以想象做1。通过获取财富文件列表fortune-f,并从其中一个文件中随机选取一行。但如果有一个更优雅的解决方案就好了 我不知道怎么做2.,我只知道RNG不是$RANDOM,所以我不能用RANDOM=seed在bas
fortune-f
,并从其中一个文件中随机选取一行。但如果有一个更优雅的解决方案就好了
我不知道怎么做2.,我只知道RNG不是$RANDOM,所以我不能用
RANDOM=seed
在bash中设置种子fortune有很多版本和重新实现。我已经看过Linux的《财富》源代码,您可能正在使用的源代码(这里:)。不幸的是(!)它使用/dev/uradom
获取种子,如果失败,则使用时间(0)
。这就是为什么$RANDOM
不起作用的原因。我只能想象这些解决方案(除了您已经找到的解决方案之外):
1) 修改源以添加强制随机种子的选项。这很琐碎
2) 通过chroot
将程序运行到受限环境中。受限环境必须包含必要的二进制文件和包含要应用的种子的伪/dev/uradom
(普通文件):
echo -en "$myseed" > restrictedroot/dev/urandom
chroot restrictedroot fortune
请注意,伪URADOM包含二进制数据,因此必须将
$myseed
扩展为4字节的二进制序列(即四个十六进制序列“\xHH”)。一点也不方便。我认为可以通过在bash中执行random=seed来设置随机种子。我在他们的示例中找到了对它的引用,他们在脚本中通过执行RANDOM=$$来使用pid。我已经尝试过这样做(类似于RANDOM=5;fortune
),如果我使用同一种子运行两次,我不会得到同样的命运。