Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何使用Shuf命令保存随机数的位置_Linux_Bash_Shell_Ubuntu - Fatal编程技术网

Linux 如何使用Shuf命令保存随机数的位置

Linux 如何使用Shuf命令保存随机数的位置,linux,bash,shell,ubuntu,Linux,Bash,Shell,Ubuntu,下面是我的shuf命令 shuf -i 1-5 如何保存随机数的位置?我们如何检查我以前生成的随机数?我只需要shell脚本中唯一的随机数?我们如何才能做到这一点?有什么帮助吗?不知道你的意思。shuf的手册页开始: shuf - generate random permutations 随机排列。意味着它不会有任何副本。所以,如果你想在1到100之间有20个随机的、唯一的数字,使用 $ shuf -i 1-100 -n 20 您甚至可以对它们进行排序: $ shuf -i 1-100 -

下面是我的
shuf
命令

shuf -i 1-5

如何保存随机数的位置?我们如何检查我以前生成的随机数?我只需要shell脚本中唯一的随机数?我们如何才能做到这一点?有什么帮助吗?

不知道你的意思。
shuf的手册页开始:

shuf - generate random permutations
随机排列。意味着它不会有任何副本。所以,如果你想在1到100之间有20个随机的、唯一的数字,使用

$ shuf -i 1-100 -n 20
您甚至可以对它们进行排序:

$ shuf -i 1-100 -n 20 | sort

您可以使用
shuf
生成所需的任意多个唯一随机数(显然,最多可达数字的范围),但您需要一次生成所有随机数

例如,您可以生成1到100之间的所有100个数字的完全随机排列,并将它们保留在bash数组中:

numbers=($(shuf -i1-100))
然后,每次需要一个新数字时,就可以从数组中提取一个新数字

index=0
# ...
r=${numbers[index++]}

不太了解shell脚本,但一般的逻辑规定,您首先必须在某个地方保留已生成的数字的记录,并基于此,您可以比较新生成的数字,决定是保留它们(它们是唯一的)还是丢弃它们(它们已存在于列表中)你可能会认为手册页会明确指出没有重复项,不是每个人都知道“置换”定义的细节。但是
shuf-i1-10-n20 | sort
只输出10个数字,看起来不错。谢谢你理解我的问题。它解决了问题,并且工作正常。