você precisa mudar quando você analisar um arg, ou colocar
Desloque $ ((OPTIND -1)) depois de terminar a análise e, em seguida, lide da forma usual, por exemplo,
while getopts "ab:c:d" opt ; do
.
done
shift $(expr $OPTIND - 1 )
while test $# -gt 0; do
echo $1
shift
done