bash处理重复命令行参数

2021-06-26  本文已影响0人  CodingCode

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

办法是利用数组,分析到一个同名参数,则加入到数组,最后再来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
上一篇 下一篇

猜你喜欢

热点阅读