[FUG-BR] [OFF TOPIC] Shell Script

Carlos Eduardo G. Carvalho (Cartola) cartoleba em gmail.com
Quarta Junho 6 11:38:07 BRT 2012


Mas por clareza também era só reescrever o primeiro melhor identado... eu
nunca escrevi um if aglomerado como esse aí.

if [ $LER = s ]; then
        mod1="4";
elif [ $LER = n ]; then
        mod1="0";
else
        func_ERR;
fi

Nesse caso aí não vejo diferença na questão de performance. A sequência do
"if" pode ser mais flexível, verificando outra condição / outra variável,
mas como estão escritos realmente tanto faz, principalmente se considerar
apenas fatores mais práticos. Talvez tenha alguma diferença em
milissegundos na performance, o que dificilmente será importante num script
pequeno. Quando for provavelmente a solução passará por mudar de linguagem.

Abs,

Carlos E G Carvalho (Cartola)
http://cartola.org/360
http://cartola.org/panoforum



Em 6 de junho de 2012 09:05, Lucas bortolato
<lucas_bortolato em hst.com.br>escreveu:

> Com certeza o Código 2, ele está mais claro. Porém tem que ver em que você
> irá usa-lo pois o if then pode ser mais util que o case em alguns casos, na
> mutação do código no caso de alguma retificação ou adicionar condições aos
> códigos.
>
> Isso na minha opinião é claro.
> att Lucas
> ----- Original Message -----
> From: Cleyton Agapito <cragapito em gmail.com>
> To: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR) <
> freebsd em fug.com.br>
> Sent: Tue, 05 Jun 2012 22:07:25 -0300 (BRT)
> Subject: Re: [FUG-BR] [OFF TOPIC] Shell Script
>
> Em 5 de junho de 2012 21:56, CDMB . <cdmb_ em hotmail.com> escreveu:
> >
> > Boa noite a todos,
> > gostaria que algum especialista analisasse esse simples código e me
> dissesse qual das opções é melhor e porque.
> > São dois códigos que fazem a mesma coisa e eu já testei e funcionam.
> >
> > Código 1:
> >
> > if [ $LER = s ]; then mod1="4"; elif [ $LER = n ]; then mod1="0"; else
> func_ERR; fi
> >
> > Código 2:
> >
> > case $LER in
> >      s)
> >        mod1="4"
> >      ;;
> >      n)
> >        mod1="0"
> >      ;;
> >      *)
> >        func_ERR
> >          ;;
> > esac
> >
>
> Não sou especialista mas vou arriscar um palpite modesto, o segundo é
> melhor por ser mais legível e por ser otimizável em C, no bash eu não
> sei, pode até ser implementado da mesma forma.
>
> Na indiferença a legibilidade é preferível.
>
> Uma forma de testar seria colocar mais testes condicionais, executar
> com o comando time e torcer pro sistema perceber alguma diferença.
>
> []'s
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>


Mais detalhes sobre a lista de discussão freebsd