AprendiNoLinux
(usa Ubuntu)
Enviado em 17/12/2014 - 17:24h
passosfil escreveu:
Olá pessoal, no meu script tem as seguintes linhas:
#!/bin/bash
polariza="true"
if [ "$polariza" == "true" ]
then
.
.
.
fi
Troque o true porque ele é palavra "reservada" creio...
Está entre aspas porque não tenho certeza.
poraliza="certo" tem que funfar....
Quando compilo:
$./main.sh
Aparece a seguinte mensagem:
"
[ true == true ]
main.sh: 485: [: true: unexpected operator"
Se alguém me ajudar a resolver este problema ficarei muito grato!
Uma outra possibilidade é a var estar vindo de alguma função e perdeu o valor.
Este tipo de comparação acima não vai funcionar mesmo...
Uma regra que aprendi faz tempo é tomar cuidado com a inicialização de variáveis...
Se vc inicializou poraliza="certo" no início do script, ela é válida até o fim.
Mas se vc inicializar dentro de um novo pipe, quando voltar perdeu o valor.
Geralmente pensamos que isso só ocorre com funções.
Cometi muitas vezes este erro.
Por exemplo um while.
O que faz dentro de um while em termos de definição, só vale dentro dele.
Vai perceber que ele abre um novo pipe e quando voltar a tua var criada nele não existe mais.
Será que consegui passar a idéia ?
Como vc não forneceu dados adicionais para ter certeza, só posso imaginar que o problema ocorreu porque definiu a var dentro de função ou dentro de algum pipe.
Deixe-me saber...