zoukankan      html  css  js  c++  java
  • shell脚本练习(随机取名)

    1、写一个脚本,实现随机选人功能,脚本需传递一个参数进去,如    pick.sh 1 出现结果"家驹”  pick.sh 3 出现结果 "落叶" "jason" "贾诩"等随机结果。 (pick.sh N 其中N可以为不大于总人数的任意数)

    #!/bin/bash
    #Author:星空刺
    #Date:2013-10-18
    #文件名必须是一行一个名字
    #设定必须有一个参数
    cat << EOF
    Warning:
    1.Name_file must be a name of a line!if not,please enter ctrl+c!
    2.$1 must be exist and $1 is an int greater than zero!
    3.$1 must be between 0 and the maximum number of names!
    ***************************************************************
    EOF
    [ $# -le 0 ] && echo 'Error:$1 must be exist and $1 is an int greater than zero!' && exit 
    #名字列表文件路径
    read -p 'Please input your name_file_path:' name_path
    echo "***************************************************************"
    #获取一个数组赋值模式列表
    [ -z $name_path ] && echo 'Name_file does not exist' && exit
    while read line;do
        name=(${name[*]} $line)
    done < $name_path
    #获取数组元素总个数
    new_name_c=${#name[@]}
    #判定脚本的参数是否在0~数组元素个数之间
    echo "The current file contains the names of $new_name_c!"
    [ $1 -gt $new_name_c ] || [ $1 -lt 0 ] && echo 'But $1 must be between 0 and the maximum number of names!' && exit
    echo "***************************************************************"
    #利用for循环,循环脚本$1次  
    for (( i=$1;i>=1;i-- ));do
    #通过$RANDOM获取随机数,并通过取余数获取到数组下标0~n内的一个元素
            ran=`echo "$RANDOM % $new_name_c" | bc`
    #每输出一个,则删除当前对应数组元素,并便于下次判定是否为空,若为空,则说明与上次获取一致
            if [ -n "${name[$ran]}" ];then
                    echo -n "${name[$ran]} "
                    unset name[$ran]
            else
    #若为空,则i加1,即本次循环获取失败,不至于少获取一个
            let i++
            fi
    done
    [星空刺] |-->一颗星辰一闪即逝,支撑它的唯有方向和目的
  • 相关阅读:
    gzip格式解压缩
    震动效果
    用SDWebImage加载FLAnimatedImage
    用UIInterpolatingMotionEffect产生透视效果
    将CAGradientLayer当做mask使用
    UITableView加载网络数据的优化
    沿着path路径做动画
    vue入门案例
    springboot拦截器拦了静态资源css,js,png,jpeg,svg等等静态资源
    SpringBoot2.x|Thymeleaf页面不能正常载入css、js文件
  • 原文地址:https://www.cnblogs.com/aaa103439/p/3376497.html
Copyright © 2011-2022 走看看