bash - bash 脚本中的随机种子
问题描述
我想在 bash 脚本中创建一个随机种子,但不知何故知道以后如何再次计算相同的随机种子。假设我有一系列服务器 id:1 到 10。我想随机选择一个服务器来运行测试。我可以通过使用 RANDOM 函数来做到这一点并查看值
echo $((1 + RANDOM % 10))
6
然后在服务器 id 6 上运行测试。
我在一个循环中这样做了 5 次。
有没有办法稍后重新计算值(服务器的 ID)以查看测试在哪里运行?我应该提到我不希望将 id 存储在数组中。
或者,除了使用 RANDOM 函数之外,还有其他方法可以实现吗?
解决方案
假设您想要可重新播放的“随机”序列,您可以使用以下命令shuf
:
$ printf '%s\n' server{1..10} | shuf --random-source file
server3
server6
server5
server9
server1
server2
server4
server8
server7
server10
只要您使用相同file
的随机源,序列将保持不变并且可以以相同的顺序重播。
有关信息,shuf -e server{1..10} --random-source file
如果您想摆脱该命令,也可以使用该printf ... |
命令。
使用-i
此shuf
命令的选项,如果您有连续的数字范围来随机播放。
推荐阅读
- javascript - while 循环的问题 - 生成随机卡片
- docker - 高山 docker 容器无法识别 tesseract-ocr
- arrays - 是否有一种算法可以比对元素进行排序更快地将具有相同键的元素分组?
- linux - 在 .patch 文件中手动创建一个新文件,但“索引”行是干什么用的?
- java - 跟踪文件更改的最有效方法是什么?
- python - TypeError:列表索引必须是整数或切片,而不是 str?刽子手
- node.js - 如何从 node.js 脚本登录 azure 广告(无浏览器流程)
- python - 如何为这个数组序列创建一个“for”循环?
- javascript - 在 PHP 函数中读取 JavaScript 变量值,一切都发生在脚本部分
- php - 将 API 响应保存为 PDF - 编码问题