我在Bash中有一个数组,说它包含数字{1,2,3,4,5}.我想随机提取其中一些数字,这样相同的数字就不会被提取两次.
基本上,如果我想从数组中提取3个数字,我想要的结果如:{3,4,1}或{5,2,4}而不是{1,1,3}或{2,5,2} .
我已经尝试删除元素,因为我提取它们,但它总是似乎搞砸了.有人可以帮忙吗?
And*_*ahl 11
决定写一个答案,因为我发现这个--input-range选项shuf变得方便:
N=3
ARRAY=( zero one two three four five )
for index in $(shuf --input-range=0-$(( ${#ARRAY[*]} - 1 )) -n ${N})
do
echo ${ARRAY[$index]}
done
Run Code Online (Sandbox Code Playgroud)