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 <cragap...@gmail.com> To: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR) <freebsd@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 . <cd...@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