我想允许我的 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))"