[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] "test -e" comportamento inesperado
From: |
Julio C. Neves |
Subject: |
Re: [shell-script] "test -e" comportamento inesperado |
Date: |
Sat, 26 May 2012 19:49:09 -0300 |
Jorge,
veja essa sequência
$ > "São Paulo" # Cria arquivo chamado São Paulo
$ Arq="São Paulo"
$ if [ -s $Arq ]; then echo $Arq tem dado; else echo $Arq ñ existe ou está
vazio; fi
bash: [: São: esperado operador binário
São Paulo ñ existe ou está vazio
Isso aconteceu pq após a variável $Arq ser substituída pelo Shell, o que
foi executado foi:
if [ -s São Paulo ]
Ou seja ele imaginou que o nome do arquivo fosse São e gerou o erro, já que
esse arquivo não existe. O que vc deveria ter feito era:
if [ -s "São Paulo" ]
E isso se faz assim:
$ if [ -s "$Arq" ]; then echo $Arq tem dado; else echo $Arq ñ existe ou
está vazio; fi
São Paulo ñ existe ou está vazio
$ echo Gol > São\ Paulo
$ if [ -s "$Arq" ]; then echo $Arq tem dado; else echo $Arq ñ existe ou
está vazio; fi
São Paulo tem dado
É assim que se descobre se um arq está vazio ou se ele tem dado. O São
Paulo, agora tem dado...
Abcs,
Julio
*
*
Em 26 de maio de 2012 16:08, Jorge Barros de Abreu
<address@hidden>escreveu:
> **
>
>
> Olá
>
> O trecho de código abaixo está falhando quando $1 é algo como "Jogo
> neimar-1.pdf"
>
> if ! test -e $1
> then
> echo "O arquivo $1 não existe"
> ERRO="1"
> fi
>
> O arquivo existe mas ele está dizendo que não existe.
>
> ?Existe alguma outra forma de fazer esse teste e que contorne esse
> problema?
>
> Obrigado
>
> --
> Data Estelar 2456074,401019
> http://sites.google.com/site/ficmatinf
> Desejo-lhe Paz, Vida Longa e Prosperidade.
> São Bem Vindas Mensagens no Formato texto UTF-8 com Acentos.
>
>
[As partes desta mensagem que não continham texto foram removidas]