docase1(){         
    case "$1" in             
        -a )                  
            echo "case a" ;;                
        -b )                    
            echo "case b" ;;                 
        -* )                 
            echo "wrong input" ;;                 
    esac
} 
Мы можем сделать вывод, что -* может соответствовать -+ символ (ы) вместо символа (ов).
docase1  -g
wrong input
docase1  -gg
wrong input
docase1  g
docase1  gg
Тот факт, что команды docase1  g и docase1  gg ничего не выводят, означает, что - * не может соответствовать ни g ни gg .
docase2(){     
    OPTS=$(getopt -o ab    -- "$@");
    if [ $? != 0 ] ; then           
       echo  "wrong" ;     
    fi;     
    eval set -- "$OPTS"; 
    while true; do         
        case "$1" in             
            -a )                  
                echo "case a" ;                 
                shift ;;             
            -b )                    
                echo "case b";                 
                shift ;;             
            -* )                 
                echo "wrong input";                 
                break;;         
        esac    
done
} 
Почему -* в docase2 может соответствовать символ (ы)?
docase2  g
wrong input
docase2  gg
wrong input
Почему одно и то же выражение -* приводит к различным эффектам?
-* в docase1 не могут совпадать с g и gg , -* в docase2 могут?
