É típico dos programas forçar a parte "some_string" a ser o último argumento para que .abc.ksh "some_string" -a "sample text"
seja um erro. Se você fizer isso, depois de analisar as opções, $OPTIND
conterá o índice para o último argumento (a parte "some_string"
).
Se isso não for aceitável, você poderá verificar no início (antes de inserir o while
para ver se há um argumento sem prefixo. Isso permitirá que você tenha "some_string"
no início e no final Se você precisasse tê-lo no meio, você não poderia usar getopts
ou você poderia ter dois conjuntos de getopts
Quando o primeiro erro, poderia ser devido ao argumento não prefixado; e inicie um novo getopts
para obter os argumentos restantes. Ou você pode pular todos os getopts e fazer sua própria solução.