在bash中生成非重复随机数序列

时间:2012-09-23 06:58:39

标签: bash random numbers

我今晚一直在努力学习bash,并且我一直在努力创建一个随机数序列,它使用一个范围的所有数字,并且只使用一次数字。因此,输入1-5的范围将输出类似4-3-5-2-1或2-5-1-3-4等等。我对这个问题感到困惑。

谢谢!

1 个答案:

答案 0 :(得分:2)

以下命令并非特定于bash,但它有效

seq 1 5 | shuf

更具有子串的bash

x=12345
for((i=5;i>0;i--));do
  ((r=RANDOM%i+1))
  echo ${x:r-1:1}
  x=${x:0:r-1}${x:r}
done