Você geralmente usa getopts como:
while getopts...; do
# process options
...
done
shift "$((OPTIND - 1))"
printf 'First non-option argument: "%s"\n' "$1"
O shift acima descarta todos os argumentos da opção (incluindo o% arrastado -- , se houver) processado por getopts .