假设像这样的脚本
#!/bin/bash
array[0]="123"
array[1]="333"
array[2]="5566"
array[3]="135"
array[4]="68"
array[5]="45"
array[6]="78"
array[7]="32"
array[8]="190"
number()
{
size=${#array[@]}
index=$(($RANDOM % $size))
sleep 0.5s
echo Lucky number is ... ${array[$index]}
}
for i in {1..21}; do number; done是可以的.我想在间隔中得到随机数,但也显示了很多陷阱
Lucky number is ... 135
Lucky number is ... 135
Lucky number is ... 5566
Lucky number is ... 78
Lucky number is ... 190
Lucky number is ... 333
Lucky number is ... 190
Lucky number is ... 135
Lucky number is ... 5566
Lucky number is ... 333
Lucky number is ... 45
Lucky number is ... 45
Lucky number is ... 68
Lucky number is ... 68
Lucky number is ... 333
Lucky number is ... 78
Lucky number is ... 78
Lucky number is ... 5566
Lucky number is ... 78
Lucky number is ... 333
Lucky number is ... 135我想要这样的结果
Lucky number is ... 135
Lucky number is ... 5566
Lucky number is ... 78
Lucky number is ... 190
Lucky number is ... 333
Lucky number is ... 45
Lucky number is ... 68这样我们就可以得到“幸运号”而不需要欺骗,唯一的人知道怎么做吗?编辑脚本和减少21到9不改变,我甚至得到重复。
Lucky number is ... 135
Lucky number is ... 68
Lucky number is ... 45
Lucky number is ... 333
Lucky number is ... 78
Lucky number is ... 135
Lucky number is ... 135
Lucky number is ... 333
Lucky number is ... 32发布于 2019-06-25 00:02:10
把这个列表当作一副牌。 洗牌这些数字,然后一次读一张。
#!/bin/bash
array=("123" "333" "5566" "135" "68" "45" "78" "32" "190")
shuffle() {
array=($(shuf -e "${array[@]}"))
index=0
}
number() {
size=${#array[@]}
sleep 0.5s
if (( index >= size )) ; then
shuffle
fi
echo Lucky number is ... ${array[$index]}
index=$((index + 1))
}
for i in {1..21}; do number; donehttps://unix.stackexchange.com/questions/526723
复制相似问题