Manipule os argumentos (restantes) com um loop e shift
. Para KEY=VALUE
type argumentos, algo assim (no bash):
function foo {
shift # handle the first "fixed" arg
while [ -n "$1" ] ; do
key=${1%%=*}
val=${1#*=}
echo "key: $key value: $val"
shift
done
}
foo first MYDATA=2 OTHERDATA=false
Você também pode usar getopts
(bash builtin) para analisar -x
style flags:
function bar {
OPTIND=3 # skip first two args
local opt
while getopts "ab:" opt; do
if [ "$opt" = "a" ] ; then
echo flag -a encountered
elif [ "$opt" = "b" ] ; then
echo flag -b with arg $OPTARG
fi
done
}
bar fixed args -a -b foo