这篇文章上次修改于 902 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
#!/bin/sh

TEMP=`getopt -o a:b: --long aa:,bb: -- "$@"`
eval set -- "$TEMP"

function main() {
    array=()

    while true
    do
        case "$1" in
            -a|--aa) array+=($2); shift 2 ;;
            -b|--bb) array+=($2); shift 2 ;;
            --) shift; break ;;
            *) echo "internal error"; exit 1 ;;
        esac
    done

    for(( i=0; i<${#array[@]}; i++))
    do
        echo ${array[i]};
    done;
}

main $@

结果:

$ bash deploy.sh -a a1 -a a2 -b b1 -b b2
a1
a2
b1
b2