我有一个数字,我想选择其中的B个而不重复,并保存到列表中。
赞:
A="100"
B=5
a=$(gshuf -i 1-$B -n $A)
for i in ${a}
do
echo $i
done
我该怎么办?
A是我代码中的一个字符串,因为我在Mac中,所以我使用gshuf而不是shuf
答案 0 :(得分:1)
您可以使用process substitution
:
A="100"
B=5
while read -r i; do
echo "$i"
done < <(gshuf -i 1-$B -n $A)
如果要将生成的数字保存在数组中,请使用:
arr=()
while read -r i; do
arr+=("$i")
done < <(gshuf -i 1-$B -n $A)
检查内容:
declare -p arr