Pular para o conteúdo

Erro [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Erro [RESOLVIDO]

Enviado em 19/09/2011 - 14:30h

Estou com o seguinte problema. Tenhu uma variavel que possui todo tipo de caracteres, inclusive espaços " " em branco, preciso saber se certas string existem dentro dessa variavel. Ex.:

aux="123456789"; [ `echo -e $aux | grep "456"` ]

Esse teste me retorna 0(zero) ou um se a string não existir dentro da variavel aux. Agora quando tem um espaço em brando o problema aparece.

aux="123 456 789"; [ `echo -e "$aux" | grep "456"` ]
-bash: [: 456: binary operator expected


Por isso acontece??? como faço para contorna esse problema ??


Obrigado

Responder tópico

2. Re: Erro [RESOLVIDO]

Melhor resposta

Enviado em 19/09/2011 - 15:13h

Para checar se o status de retorno de determinada expressão, execução de comando, etc... e verdadeiro ou falso, você deve utilizar colchetes duplos.

[[ ... ]]

ou ainda:


# Testando com operadores booleanos
echo "123 456 789" | grep -q "456" && echo Ok || echo Fail

# Testando diretamente pelo 'if'
if echo "123 456 789" | grep -q "456"
then
echo Ok
else
echo Fail
fi

# Testando pela variável de ambiente '$?'
echo "123 456 789" | grep -q "456"
if [ $? -eq 0 ]
then
echo Ok
else
echo Fail
fi





3. Re: Erro [RESOLVIDO]

Enviado em 19/09/2011 - 15:31h

Boa tarde,
Muito obrigado, utilizando o colchetes duplos [[...]] funcionou sim :-)

4. Se possível, finalizar a questão e marcar a melhor resposta.

Enviado em 20/09/2011 - 21:04h

neltavares escreveu:

Boa tarde,
Muito obrigado, utilizando o colchetes duplos [[...]] funcionou sim :-)
Pode dar baixa marcando o tópico como resolvido ? Escolha a melhor resposta também. A galera que ajuda no fórum agradece.




5. Re: Erro [RESOLVIDO]

Enviado em 20/09/2011 - 21:06h

Tinha me esquecido de marcar como resolvido ^^

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder