[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problema com o IF
From: |
felipe_rmaia |
Subject: |
Re: Problema com o IF |
Date: |
Mon, 15 Mar 2010 14:16:47 -0000 |
User-agent: |
eGroups-EW/0.82 |
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
--- Em address@hidden, 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]
>