当命令行参数可以输入多个的时候如何处理。
办法是利用数组,分析到一个同名参数,则加入到数组,最后再来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
网友评论