美文网首页
bash处理重复命令行参数

bash处理重复命令行参数

作者: CodingCode | 来源:发表于2021-06-26 03:25 被阅读0次

    当命令行参数可以输入多个的时候如何处理。

    办法是利用数组,分析到一个同名参数,则加入到数组,最后再来loop这个数组。
    例如:

    #!/bin/bash
    
    OPTS=`getopt -o a: --long address: -n 'parse-options' -- "$@"`
    if [ $? != 0 ] ; then echo "Failed parsing options." >&2 ; exit 1 ; fi
    eval set -- "$OPTS"
    
    ADDRESSES=()
    while true; do
      case "$1" in
        -a | --address ) ADDRESSES+=("$2");  shift; shift ;;
        -- ) shift; break ;;
        * ) break ;;
      esac
    done
    
    for ADDRESS in "${ADDRESSES[@]}"; do
        echo "address=${ADDRESS}"
    done
    

    运行结果:

    $ ./test.sh -a addr1 -a addr2 --address addr3
    address=addr1
    address=addr2
    address=addr3
    

    相关文章

      网友评论

          本文标题:bash处理重复命令行参数

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