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

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

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


From: Rodrigo Amorim Ferreira | CODECOMMUNITY
Subject: Re: [shell-script] Construção de CASE Complexa
Date: Sat, 09 Jul 2016 02:30:59 -0300

Oi pessoal,

Quanto ao problema de envio de mensagens para a lista através de minha
conta de email, acredito já ter solucionado... era problema de "BIOS" (e
muito tempo sem mexer no painel de controle do Yahoo) :D

Aguardo opiniões sobre o problema com o tipo condicional case relatado
anteriormente.

Um abraço a todos.

Rodrigo

On Fri, 2016-07-08 at 22:04 -0700, address@hidden [shell-script]
wrote:
>   
> Oi Pessoal,
> 
> Boa madrugada! Antes de mais nada, peço desculpas antecipadas caso a
> lista receba mais de uma mensagem minha sobre o mesmo tema, pois me
> parece que não está funcionando o envio de mensagens diretamente de
> minha conta de email e estou re-enviando essa cópia através do painel
> de controle do Yahoo Groups. Alguém saberia de algum problema, ou
> bloqueio?
> 
> 
> DÚVIDA SOBRE CONDICIONAL DO TIPO CASE
> 
> 
> Gostaria de tirar uma dúvida: é possível criar um tipo condicional
> case
> com opções AND e OR misturadas em cada opção de padrão a ser
> analisado?
> 
> Exemplos: eu sei que e possível criar um tipo condicional case básico
> como:
> 
> case $1 in
>   -p)
>     echo "Opção 1"
>     ;;
>   -s)
>     echo "Opção 2"
>     ;;
>   -f)
>     echo "Opção 3"
>     ;;
>    *)
>     echo "Modo de uso: nome_do_programa {-spf}"
> esac
> 
> Neste caso ele analisa o uso do executável com apenas uma opção:
> 
>   $ nome_do_programa -p
>   Opção 1
>   $ nome_do_programa -s
>   Opção 2
>   $ nome_do_programa -f
>   Opção 3
> 
> Eu sei que é possível expandir o uso das opções, de cada padrão a ser
> analisado, com o OR:
> 
> case $1 in
>   -p|--project)
>     echo "Opção 1"
>     ;;
>   -s|--subproject)
>     echo "Opção 2"
>     ;;
>   -f|--file)
>     echo "Opção 3"
>     ;;
>    *)
>     echo "Modo de uso: nome_do_programa {-spf}"
> esac
> 
> O que permite ele funcionar para os seguintes casos:
> 
>   $ nome_do_programa -p
>   Opção 1
>   $ nome_do_programa --project
>   Opção 1
>   $ nome_do_programa -s
>   Opção 2
>   $ nome_do_programa --subproject
>   Opção 2
>   $ nome_do_programa -f
>   Opção 3
>   $ nome_do_programa --file
>   Opção 3
> 
> E também sei que é possível utilizar AND para evitar (ao máximo) o uso
> de condicionais do tipo case aninhadas, como:
> 
> case $1:$2:$3 in
>   -p:-s:-f)
>     echo "Opção 1, 2 e 3 simultâneas"
>     ;;
>    *)
>     echo "Modo de uso: nome_do_programa {-s -p -f}"
> esac
> 
> que responderia da seguinte maneira:
> 
>   $ nome_do_programa -p -s -f
>   Opção 1, 2 e 3 simultâneas
> 
> Mas não descobri como fazer (se é realmente possível) o uso do AND e
> do
> OR simultâneo em cada opção de padrão a ser analisado pelo tipo
> condicional case. É possível criar uma opção de padrão que misture
> ambas? Algo como (eu sei que não funciona):
> 
> -p|--project:-s|--subproject:-f|--file)
> 
> que permitisse gerar resultados como:
> 
>   $ nome_do_programa -p -s -f
>   Opção 1, 2 e 3 simultâneas
>   $ nome_do_programa --project -s -f
>   Opção 1, 2 e 3 simultâneas
>   $ nome_do_programa -p --subproject -f
>   Opção 1, 2 e 3 simultâneas
>   $ nome_do_programa -p -s -file
>   Opção 1, 2 e 3 simultâneas
>   $ nome_do_programa --project --subproject -f
>   Opção 1, 2 e 3 simultâneas
>   $ nome_do_programa --project -s --file
>   Opção 1, 2 e 3 simultâneas
>   $ nome_do_programa -p --subproject --file
>   Opção 1, 2 e 3 simultâneas
>   $ nome_do_programa --project --subproject --file
>   Opção 1, 2 e 3 simultâneas
> 
> Estou tentando ao máximo obter opções de construção de programas em
> shell com o uso do tipo condicional case para não precisar utilizar
> (muito) a sua forma aninhada e tentar manter o código o mais "simples"
> possível.
> 
> Também acredito que posso estar redondamente enganado, e essa linha de
> raciocínio pode vir a complicar meu projeto mais à frente. Por isso
> qualquer solução alternativa que mude minha linha de desenvolvimento e
> torne o programa melhor (e mais legível) também é muito bem vinda.
> 
> Desde já agradeço a ajuda.
> 
> Saudações.
> 
> Rodrigo Amorim
> 
> 
> 
> 




reply via email to

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