我想允许我的bash脚本foo
接受如下参数:
> foo --arg-name="argval1 argval2 ..."
这样我可以访问变量中的参数值,就像我已经定义它一样
ARG_NAME="argval1 argval2 ..."
到目前为止,我已尝试过ARG_NAME=${1#*=}
,但这只接受
> foo "--arg-name=\"argval1 argval2 ...\""
这并不是一个不错的解决方案。
我很欣赏在不使用getopts解决方案的情况下使用纯bash的解决方案。
答案 0 :(得分:0)
首先,获取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: %s\n' "${0##*/}" "$OPTLERR"
Help
exit 1
;;
esac
done
shift "$(($OPTLIND - 1))"