遍历数组及随机取出数组中元素

本文介绍了一个使用Bash编写的脚本,它按批次执行10个SQL,每次批次中的SQL顺序被打乱,通过随机选取SQL名来实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求

循环执行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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值