[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Re: Problema com o IF
From: |
Edinho Almeida |
Subject: |
Re: [shell-script] Re: Problema com o IF |
Date: |
Mon, 15 Mar 2010 12:07:31 -0300 |
Oi Alexandre,
Eu colocaria redirecionamento de erro por se não houver nenhum arquivo dá um
erro de script.
if [ "$(ls -1 /emails/*-teste3.com.br.conf)" ]; then echo existe; else echo
nao e da erro"; fi
if [ "$(ls -1 /emails/*-teste3.com.br.conf 2>/dev/null)" ]; then echo
existe; else echo nao sem dar erro; fi
Abs
Edinho Almeida
11 8018-8019
2010/3/15 Alexandre Gorges <address@hidden>
>
>
> Obrigado a todos pelas sugestões. Usei a dica do Eri Ramos Bastos. Deu
> certo
> !
>
> []'s
> Alexandre Gorges
> http://www.google.com.br/profiles/algorges
> MSN/Gtalk/iCHAT/Skype/Jabber: address@hidden <algorges%40gmail.com>
> ICQ: 2031408
>
> From: felipe_rmaia <address@hidden<felipe_rmaia%40yahoo.com.br>
> >
> Reply-To: Lista Shell Script
> <address@hidden<shell-script%40yahoogrupos.com.br>
> >
> Date: Mon, 15 Mar 2010 14:16:47 -0000
> To: Lista Shell Script <address@hidden<shell-script%40yahoogrupos.com.br>
> >
> Subject: [shell-script] Re: Problema com o IF
>
> Bom dia Alexandre.
>
> Acredito não ser possível fazer o teste condicional da forma que você está
> querendo. Pois o "*" (asterisco) está colocando todos os arquivos
> existentes
> como argumentos para o teste condicional, causando assim um erro de
> sintaxe.
>
> Uma forma simples que resolveria o seu problema é:
>
> if $(ls /emails/*-teste3.com.br.conf 1>/dev/null 2>&1) ; then echo existe;
> else echo nao; fi
>
> Assim você testaria o valor de retorno do comando "ls", que retornaria um
> valor falso caso não encontrasse qualquer arquivo com a expressão sugerida.
>
> Obs: o valor de retorno de qualquer comando utilizado no shell é armazenado
> na variável "$?". Logo, este valor pode ser exibido com o comando "echo
> $?".
>
> Felipe Rodrigues Maia
> address@hidden <felipe_rmaia%40yahoo.com.br> <mailto:
> felipe_rmaia%40yahoo.com.br <felipe_rmaia%2540yahoo.com.br>>
>
> --- Em address@hidden <shell-script%40yahoogrupos.com.br>
> <mailto:shell-script%40yahoogrupos.com.br<shell-script%2540yahoogrupos.com.br>>
> , Alexandre Gorges <algorges@...>
> escreveu
> >
> > Bom dia Lista,
> >
> > Estou com um problema no if.
> > Montei um if assim:
> >
> > if [ -f /emails/*-teste3.com.br.conf ] ; then echo existe; else echo nao;
> fi
> >
> > Se existe apenas um arquivo no diretório funciona. Quando existe mais
> > arquivos da erro de too many arguments.
> > Dentro do diretório existe arquivos nessa forma
> >
> > alo-teste3.com.br.conf
> > asa2-teste3.com.br.conf
> > edson-teste3.com.br.conf
> > teste333-teste3.com.br.conf
> >
> > Como posso fazer o if tratar se tiver mais de um arquivo?
> >
> >
> > []'s
> > Alexandre Gorges
> > http://www.google.com.br/profiles/algorges
> > MSN/Gtalk/iCHAT/Skype/Jabber: algorges@...
> > ICQ: 2031408
> >
> >
> >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
[As partes desta mensagem que não continham texto foram removidas]