getopts
inicia a análise no primeiro argumento e pára nos primeiros argumentos não opcionais. Essa é a convenção padrão - alguns utilitários GNU aceitam opções após argumentos, mas o normal é que em somecommand foo -bar qux
, -bar
não é analisado como uma opção.
Se você quiser iniciar as opções de análise após bootstrap
, será necessário indicar isso. getopts
usa a variável OPTIND
para lembrar em que posição está. OPTIND
começa com o valor 1. Para pular o primeiro argumento, defina-o como 2.
case "$1" in
bootstrap)
OPTIND=2
while getopts ":b:" o; do
…
Como alternativa, você pode shift
dos argumentos já processados.
subcommand=$1; shift
case "$subcommand" in
bootstrap)
while getopts ":b:" o; do
…