需求
循环执行10批次,每批次执行固定的10个sql ,批次内10个sql顺序打乱
#!/bin/bash
a=(1 2 3 4 5 6 7 8 9 10)#假设固定的是个sql名
len=${#a[@]}
for ((i=1;i<=10;i++))#执行批次
do
echo "batch:${i}"
declare -a array #存放临时sql名
while [ ${#array[@]} -lt 11 ]
do
index=$(( RANDOM % len ))#随机获取sql名
#将随机取到的sql名放入临时数组中
if [[ "${array[@]}" =~ "${a[$index]}" ]];then
continue
else
array[${#array[@]}]=${a[$index]}
fi
if [ ${#array[@]} -eq 10 ];then
break
fi
done
echo "end: ${array[@]}"
for num in ${array[@]}
do
echo $num
done
unset array
done