• 占楼

  • 第十期 bash 学习笔记 at June 22, 2019

    好棒的笔记

  • 课后作业
    1.完善抽奖程序, 如果最后一轮没人命中,从上一轮的种子里再次选拔,而不是整个作废
    2.加入去重
    3.把多次抽奖也合并到一次的抽奖里
    luck(){
    a=();
    #循坏抽取八次
    for (( i=0;i<8;i+=1));do
    #按行读取,生成名单库
    seeds=$(while read line;do echo ${line// /..};done < name);
    count=0; index=0;
    #开始抽奖
    while ((count!=1));do ((index+=1));seeds_1=$seeds;seeds=$( for seed in $seeds;do ((RANDOM%2==1)) && echo $seed;done);
    #如果这一轮抽到空,就跳过这一轮,在上轮的抽到的名单库里重新抽取
    [ -z "$seeds" ] && seeds=${seeds_1} && continue;
    #计算当前名单库人数
    count=$(echo "$seeds" | wc -l);
    每次抽取到的名单加入一个数组
    [ $count = 1] && a[i]=$seeds;done;done;
    打印最终抽取到的名单库
    echo ${a[@]}
    }

    #去重没有找到有效的解决办法,请老师帮忙讲解下,谢谢!

  • 报道