在 bash 脚本中处理表单 --argname= "value1 value2" 的参数



我想允许我的 bash 脚本foo接受参数,如下所示:

> foo --arg-name="argval1 argval2 ..."

这样我就可以访问变量中的参数值,就好像我已经定义了它一样

    ARG_NAME="argval1 argval2 ..."

到目前为止,我已经尝试过做ARG_NAME=${1#*=}但这只接受形式的参数

> foo "--arg-name="argval1 argval2 ...""

这不是一个像样的解决方案。

我希望有一个在不使用getopts解决方案的情况下在纯bash中工作的解决方案。

首先,获取getoptlong

然后检查这个演示:

#!/bin/bash
# ( long_option ) 0 or no_argument,
# 1 or required_argument, 2 or optional_argument).
Help() {
cat<<HELP
Usage :
    $0 [ --install-modules <liste des modules> ] [-h|--help]
HELP
    exit 0
}
. /PATH/TO/getopts_long.sh
OPTLIND=1
while getopts_long :h opt 
    install-modules 1 
    help 0 "" "$@"
do
    case "$opt" in
        install-modules)
            echo $OPTLARG
        ;;
        h|help)
            Help; exit 0
        ;;
        :)
           printf >&2 '%s: %sn' "${0##*/}" "$OPTLERR"
           Help
           exit 1
        ;;
    esac
done
shift "$(($OPTLIND - 1))"

最新更新