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

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

Re: Verificar se arquivo contem algo ou está vazio


From: voyeg3r
Subject: Re: Verificar se arquivo contem algo ou está vazio
Date: Tue, 21 Aug 2007 19:55:49 -0000
User-agent: eGroups-EW/0.82

Lendo o manual do comando "test" e o canivete suiço do Aurélio vi que
o   "-z" é para testar strings já o "-s" testa se o arquivo existe e
seu tamanho é maior que zero, portanto pode fazer


  [ -s arquivo ] && echo nao vazio || echo vazio


Para testar faça:

  > arquivo   # cria o arquivo mais rápido que o touch

  [ -s arquivo ] && echo nao vazio || echo vazio

   echo "colocando texto no arquivo" >> arquivo

  [ -s arquivo ] && echo nao vazio || echo vazio




--- Em address@hidden, "Tiago Barcellos Peczenyj"
<tiago.peczenyj@...> escreveu
>
> Ola ikami
> 
> Para este caso existem 2 soluções, ou vc usa o duplo colchete [[ -z
$TESTE
> ]] ou usa a variavel entre "aspas" [ -z "$TESTE" ]
> 
> []´s Tiago
> 
> On 8/21/07, ikami <ikamig@...> wrote:
> >
> >   Olá lista,
> > Gostaria de verificar se um arquivo está vazio ou não. Sei que tem
como
> > fazer isso facilmente mas não achei como.
> > Tentei usar o "if -z" para testar mas sem sucesso.
> > O código que quero fazer é o seguinte:
> >
> > TESTE=`sed -n '/^---/,/^$/ p' sql.txt | LC_ALL=pt_BR awk '$NF >=
90 {print
> > $1,$NF}'`
> > if [ -z $TESTE ]
> > then
> > echo "ARQ VAZIO"
> > exit 0
> > else
> > echo "ARQ CHEIO"
> > exit 2
> > fi
> >
> > OBS: O sed+awk usado foi o que o colega Tiago Barcellos fez.
> >
> > O problema eh que essa variáel TESTE contem uma string com espaços em
> > branco e por isso não está aceitando:
> >
> > ./script.sh: line 6: [: too many arguments <--- Linha do "if [ -z
$TESTE
> > ]"
> >
> > Fazendo com que o TESTE contenha somente um dado (uma palavra e sem
> > espaços em branco), o comando executa legal.
> >
> > Grato.
> >
> 
> 
> -- 
> Tiago B Peczenyj
> Linux User #405772
> 
> http://peczenyj.blogspot.com/
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




reply via email to

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