【发布时间】:2012-09-23 06:58:38
【问题描述】:
今晚我一直在努力学习 bash,我一直在尝试创建一个随机数序列,它使用一个范围内的所有数字,并且每个数字只使用一次。因此,输入 1-5 的范围将输出 4-3-5-2-1 或 2-5-1-3-4 等。我被困在这个问题上。
谢谢!
【问题讨论】:
-
只是一个信息说明:您正在寻找的是输入范围的随机排列。
今晚我一直在努力学习 bash,我一直在尝试创建一个随机数序列,它使用一个范围内的所有数字,并且每个数字只使用一次。因此,输入 1-5 的范围将输出 4-3-5-2-1 或 2-5-1-3-4 等。我被困在这个问题上。
谢谢!
【问题讨论】:
以下命令并非特定于 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
【讨论】: