Erro [RESOLVIDO]

1. Erro [RESOLVIDO]

Emmanuel Tavares F Affonso
neltavares

(usa Slackware)

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


  


2. MELHOR RESPOSTA

Sandro Marcell
SMarcell

(usa Slackware)

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]

Emmanuel Tavares F Affonso
neltavares

(usa Slackware)

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.

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

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]

Emmanuel Tavares F Affonso
neltavares

(usa Slackware)

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

Tinha me esquecido de marcar como resolvido ^^






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts