我想在bash脚本中创建一个随机种子,但是不知怎的知道以后如何再次计算相同的随机种子。 假设我的服务器ID范围是1到10。我想随机选择一个服务器来运行测试。我可以使用RANDOM函数来做到这一点,并查看值
echo $((1 + RANDOM % 10))
6
然后在服务器ID 6上运行测试。
我循环执行了5次。
以后是否可以重新计算值(服务器的ID)以查看运行测试的位置?我应该提到我不希望将ID存储在数组中。
或者除了使用RANDOM函数之外还有其他方法吗?
答案 0 :(得分:3)
假设您要重播“随机”序列,可以使用命令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
选项,如果您有连续的数字范围可以洗牌。