Getopts - comando com várias opções

0

Eu tenho um script de comando que estou fazendo e me perguntando como faço para combinar várias opções

o uso geral do comando é o seguinte:

Uso: myCommand [-fpr] [-n contagem] [-s tamanho] [-u usuário] [-d diretório]

Minha pergunta se refere à opção [-fpr]. Se o usuário digitar myCommand -fpr ou myCommand -fp, como combinar / concatenar as opções juntas se estiver em um loop while?

while getopts "fpr" opt; do
    case $opt in
    f)
        echo '-l'
        echo "-f was triggered!" >&2
        ;;
    p)
            echo '-h'
        echo "-p was triggered!" >&2
        ;;
    r)
        echo "-r was triggered!" >&2
        ;;

    \?)
        echo "Invalid option: -$OPTARG\n" >&2
        usage
        ;;
    esac
done
    
por bigubosu 12.04.2014 / 12:41

1 resposta

1

Se eu entendi sua pergunta corretamente, você está tentando descobrir como lidar com -fpr da mesma forma que -f -p -r . Nesse caso, getopts faz isso por você.

Se você quiser usar a "opção longa" -fpr e não ameaçá-la como -f -p -r , será necessário abandonar getopts e procurar, por exemplo, getopt (observe a falta da s no final), que suporta opções longas. Veja por exemplo link para detalhes.

    
por 13.05.2014 / 15:46