shell解析xx,xx-xx,xx

#!/bin/bash
#解析x,xx-xx,xx参数,比如解析2,10-12,23为:2 10 11 12 23
parse_parameter(){
    input=$*
    result=()
    IFS=',' read -ra parts <<< "$input"
    for part in "${parts[@]}"; do
        if [[ $part == *-* ]]; then
            IFS='-' read -ra range <<< "$part"
            start=${range[0]}
            end=${range[1]}
            for ((i = start; i <= end; i++)); do
                result+=($i)
            done
        else
            result+=($part)
        fi
    done
    echo "${result[@]}"
}

parse_parameter $*
posted @ 2024-10-06 16:12  liwl1991  阅读(27)  评论(0)    收藏  举报