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

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

Re: [shell-script] CASE ou IF?


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] CASE ou IF?
Date: Wed, 30 Aug 2006 15:21:02 -0300

isto não vai funcionar por que o case leva em conta a seguinte sintaxe:

case $VARIAVEL in
padrão1) ... ;;
padrão2) ... ;;
padrão3) ... ;;
...
esac

vc está vendo o resultado combinado de 2 variaveis e fazendo
comparações numéricas. entretanto vc poderia usar o case com o
seguinte algoritmo:

case "${qtd_arq}:$qtd_dir" in
0:0) comando ;;
1:0) comando ;;
*:0) comando ;;
1:0) comando ;;
1:1) comando ;;
1:*) comando ;;
*) comando ;;
esac

o * representa qq coisa. é um padrão. caso vc não lide nunca com
valores negativos, é uma boa abordagem.

On 8/30/06, Rodrigo <address@hidden> wrote:
Olá amigos.

Estou desenvolvendo um script onde tenho sete testes condicionais a fazer:

if [ $qtd_arq = 0 -a $qtd_dir = 0 ]
then
      comandos
elif [ $qtd_arq = 1 -a $qtd_dir = 0 ]
then
      comandos
elif [ $qtd_arq > 1 -a $qtd_dir = 0 ]
then
      comandos
elif [ $qtd_arq = 0 -a $qtd_dir = 1 ]
then
      comandos
elif [ $qtd_arq = 0 -a $qtd_dir > 1 ]
then
      comandos
elif [ $qtd_arq = 1 -a $qtd_dir = 1 ]
then
      comandos
elif [ $qtd_arq > 1 -a $qtd_dir > 1 ]
then
      comandos
fi

Gostaria de saber se nesse caso seria melhor utilizar o CASE ao invés
do IF para melhorar o código do script.
Tentei algo como...

case in
[ $qtd_arq = 1 -a $qtd_dir = 0 ]) comandos
                                  ;;
[ $qtd_arq > 1 -a $qtd_dir = 0 ]) comandos
                                  ;;
[ $qtd_arq = 0 -a $qtd_dir = 1 ]) comandos
                                  ;;
[ $qtd_arq = 0 -a $qtd_dir > 1 ]) comandos
                                  ;;
[ $qtd_arq = 1 -a $qtd_dir = 1 ]) comandos
                                  ;;
[ $qtd_arq > 1 -a $qtd_dir > 1 ]) comandos
                                  ;;
                               *) comandos
esac

...e não obtive sucesso.
Gostaria mais uma vez da ajuda dos amigos.
Um abraço.

Rodrigo







---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil


Links do Yahoo! Grupos










--
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer


reply via email to

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