Isso pode resultar em uma lista arg vazia, ou não. Depende de quantos argumentos houve para começar e quantos argumentos relevantes getopts
encontraram (e definiram em $ OPTIND). getopts ignora todos os argumentos que não começam com -
e --
diz ao getopts para parar o processamento de quaisquer argumentos subsequentes como opções (por exemplo, rm -f -- -filenamebeginningwith-.txt
).
por exemplo. se você tiver 5 args -x -y -z file1 file2
, então shift 3
irá se livrar dos três primeiros argumentos, deixando apenas file1 file2
.