shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: Construção de CASE Complexa


From: Rodrigo Amorim Ferreira | CODECOMMUNITY
Subject: Re: [shell-script] Re: Construção de CASE Complexa
Date: Mon, 11 Jul 2016 13:26:44 -0300

Oi Christian,

Simples! Porque eu ainda não tinha conseguido visualizar o funcionamento
da sugestão do Itamar. Acho que finalmente peguei a ideia (do uso da
ideia dele) para o meu programa. Vou apresentar uma proposta-exemplo em
breve.

Também agradeço suas sugestões. São ótimas :)

E peço desculpas pelos longos textos nos emails anteriores, mas eu
(acredito) precisava tentar explicar:

1 - o funcionamento do meu programa e;
2 - como eu estava usando a logica (ou a falta de lógica) para
construí-lo.

Um abraço.

Rodrigo


On Mon, 2016-07-11 at 12:33 -0300, Christian Lyra address@hidden
[shell-script] wrote:
>   
> Caros,
> 
> 
> Nossa... a thread cresceu alem do esperado! Logo quando eu vi pensei
> que o Rodrigo não tinha pensado em usar o shift para ler as opções, e
> a resposta logo em seguida do Itamar estava perfeita. Pronto é isso,
> "KISS".  Varios textões depois eu ainda estou tentando entender porque
> o Rodrigo quer fazer algo complicado a ponto de impedir que o usuário
> altere a ordem das opções! Que diferença faz "-p projeto -s
> subprojeto" de "-s subprojeto -p projeto"??  Salvo as situações onde
> não se usam "opções" de maneira explicita como por exemplo num comando
> cp, onde sempre os primeiros parametros são a origem e o último o
> destino, o padrão é aceitar as opções em qualquer ordem!
> 
> 
> Assim tb como indicado pelo Itamar, vc cuida depois da lógica das
> opções, ou seja, o usuário não pode usar a opção de subprojeto, sem
> indicar tb a opção de projeto. Algo do tipo:
> 
> 
> PROJETO=""
> 
> SUBPROJETO=""
> 
> DEBUG=0
> 
> 
> # le opcoes
> 
> while test -n "$1"
> 
> do 
> 
>   case $1 in
> 
>        -p|--projeto) shift
> 
>                            PROJETO="$1"
>                            ;;
> 
>        -s|--subprojeto) shift
> 
>                                 SUBPROJETO="$1"
>                            ;;
> 
>         -d|--debug) DEBUG=1
>                            ;;
> 
>         *) echo "hein?"
> 
>    esac 
> 
>    shift
> 
> done
> 
> 
> #verifica opcoes
> 
> if [ "$PROJETO" == "" ]
> 
> then
> 
>     echo "Por favor, informe o projeto. "
> 
>     exit
> 
> fi
> 
> 
> Outra opção é usar o getopt, mas eu pessoalmente acho ele meio
> chato...
> 
>         
>         Quanto a questão da ordem de aplicação dos parâmetros, por
>         questão da
>         ideia de superconjunto, e de forçar o usuário a pensar na
>         execução de
>         suas tarefas na ordem "correta", eles não poderiam ser
>         alterados (de
>         início).
>         
>         Assim, se alguém quer mexer num arquivo de um subprojeto ele
>         precisa
>         primeiro informar o PROJETO, depois o SUBPROJETO para depois
>         indicar o
>         ARQUIVO que ele quer mexer... nessa ordem. Assim sendo, não
>         queria
>         permitir na linha de comando que o usuário alterasse essa
>         ordem a seu
>         "bel prazer" por questão de lógica também da estrutura de
>         arquivos e
>         diretórios que o programa constrói. Mas, novamente, posso
>         estar enganado
>         quanto a isso.
>         
>         Mas se você afirma que as ideias anteriormente postadas por
>         você, Tiago
>         e Julio são as melhores opções, vou continuar pensando nelas e
>         tentar
>         elaborar um código exemplo para apreciação da lista.
>         
>         E, não se preocupe pois eu não sou de me iludir. Prefiro
>         sempre a
>         verdade, pois não se pode ficar feliz com mentiras, somente
>         para agradar
>         ao próximo (i. é: essa situação é ruim tanto para quem tenta
>         agradar
>         dessa forma quanto para quem aceita esse tipo de
>         agradecimento) :P
>         
>         Um abraço.
>         
>         Rodrigo
>         
>         
>         
>         > 
>         
>         
>         
> 
> 
> 
> -- 
> Christian Lyra
> PoP-PR/RNP
> (41) 3361-3343
> 
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]