bash脚本shuf并保存在列表中

时间:2018-07-25 16:17:00

标签: arrays string bash

我有一个数字,我想选择其中的B个而不重复,并保存到列表中。

赞:

A="100"
B=5

a=$(gshuf -i 1-$B -n $A)
for i in ${a}
do
  echo $i
done

我该怎么办?

A是我代码中的一个字符串,因为我在Mac中,所以我使用gshuf而不是shuf

1 个答案:

答案 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