Apenas manipule como você manipula os outros que aceitam um argumento ( image
e version
). Ou seja, adicione os dois pontos marcando um argumento obrigatório para a cadeia de opção que vai para getopt e escolha o valor de $2
.
Eu acho que o erro que você recebe vem de getopt
, já que não é dito que options
leva um argumento, e então ele tenta interpretar --build-arg ARG=value
como uma opção longa (ele começa com um traço duplo) .
$ cat opt.sh
#!/bin/bash
params="$(getopt -o hv: -l help,options:,version: --name "$0" -- "$@")"
eval set -- "$params"
while [[ $# -gt 0 ]] ; do
case $1 in
-h|-\?|--help)
echo "help"
;;
-v|--version)
if [ -n "$2" ]; then
echo "version: <$2>"
shift
fi
;;
--options)
if [ -n "$2" ]; then
echo "options: <$2>"
shift
fi
;;
esac
shift
done
$ bash opt.sh --version 123 --options blah --options "foo bar"
version: <123>
options: <blah>
options: <foo bar>