美文网首页
shell脚本获取目录中个各个服务最新的包

shell脚本获取目录中个各个服务最新的包

作者: 进击云原生 | 来源:发表于2019-07-27 23:20 被阅读0次

    需求

    有个目录,里面是存放着各个微服务的各个版本的包,包名格式为:{服务名}-{时间戳}.zip
    比如:

    image.png

    需要获取各个服务最新的包名,即:

    aad-service-7.35.20190723005668.zip
    add-service-7.35.20190723005668.zip
    icm-service-7.35.20190724005968.zip
    

    shell怎么写?

    #!/bin/bash
    
    # 进入包目录
    cd  /data/test/testsvc
    
    # 申明数组
    declare -a SVCNAME
    
    # 遍历目录中所有的包
    for svc in $(ls)
    do
        # 把包名按照时间戳前面的-切割,拿到服务名
        prefix=${svc%-*}
        echo $prefix
        # 把所有服务名放到数组中
        SVCNAME[${#SVCNAME[*]}]=$prefix
    done 
    
    # 去重
    SVCNAME=($(echo ${SVCNAME[*]} | sed 's/ /\n/g' | sort | uniq))
    
    #各服务最新包数组
    LAST_SVC_PKG=()
    for ss in ${SVCNAME[*]}
    do
        echo "svcname is ${ss[@]}"
        LAST_SVC_PKG[${#LAST_SVC_PKG[*]}]=$(ls | grep ${ss} | sort -r | head -n1) 
    done
    
    echo "各个服务最新包名为: ${LAST_SVC_PKG[*]}"
    
    image.png

    相关文章

      网友评论

          本文标题:shell脚本获取目录中个各个服务最新的包

          本文链接:https://www.haomeiwen.com/subject/utbyrctx.html