Have been using getopt for some time. I am looking into the possibility of having two argument values for an option. Is this good and possible to do this with getopt. An example would help.
Have done some tests and figured out that doing
myfunc -S 13 21
gives
opts: -S '13' -- '21'
where
opts=$( getopt -o "$shortopts" -l "$longopts" -n "${0##*/}" -- "$@" )
Thusly getopt is incapable of accepting myfunc -S 13 21.
CodePudding user response:
Look here Retrieving multiple arguments for a single option using getopts in Bash
Basically says that you can add an option multiple times at the command line
like this:
myscript.sh -x value1 -x value2
And when you loop through the options you can append it every time getopt encounters that option. Here is an example:
#!/bin/bash
$XVALUE
while getopts "x:" arg; do
case $arg in
x)
XVALUE="$XVALUE$OPTARG"
;;
esac
done
echo "Values: $XVALUE"
# ./myscript -x a -x b
# Values: ab
CodePudding user response:
I am handling things this way
while (( $# > 0 )); do
case $1 in
("-S"|"--seam")
[[ "$2" = ([[:digit:]]) ]] && { sp="$2" ; shift ; }
[[ "$2" = ([[:digit:]]) ]] && { sq="$2" ; shift ; }
;;
esac
done
