【shell笔记>参数解析】使用getopts解析长格式输入参数

这两天因为工作需求,需要写一些脚本,其中就涉及输入参数的解析,因为单个字符的选项-a-o等等很难清楚地说明输入的参数,也不方面调试,所以在想怎么能够解析--形式的选项,比如--input_file--output_file
关于单字符选项及参数的解析可以查阅笔记处理用户输入。
这里放下如何用getopts解析长格式的输入参数方法:

#!/usr/bin/env bash optspec=":hv-:" while getopts "$optspec" optchar; do case "${optchar}" in -) case "${OPTARG}" in loglevel) val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 )) echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2; ; ; loglevel=*) val=${OPTARG#*=} opt=${OPTARG%=$val} echo "Parsing option: '--${opt}', value: '${val}'" >&2 ; ; *) if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2 fi ; ; esac; ; h) echo "usage: $0 [-v] [--loglevel[=]]" >&2 exit 2 ; ; v) echo "Parsing option: '-${optchar}'" >&2 ; ; *) if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2 fi ; ; esac done

注意getoptgetopts的差异。
【【shell笔记>参数解析】使用getopts解析长格式输入参数】来源:https://stackoverflow.com/questions/402377/using-getopts-in-bash-shell-script-to-get-long-and-short-command-line-options

    推荐阅读