[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
- CASE ou IF?, Rodrigo, 2006/08/30
- Re: [shell-script] CASE ou IF?,
Tiago Barcellos Peczenyj <=