Problemas com variáveis

1. Problemas com variáveis

Gesiel G
clickbr

(usa Debian)

Enviado em 30/01/2008 - 09:39h

Quero fazer isso:

variavel1=texto1
read variavel2
if [ "$variavel1" == "$variavel2" ]

Mais tenho esse problema:

if [ "$variavel1" == "Não aceita variáveis aquí" ]

Alguém sabe como eu coloco essa variável?


  


2. Re: Problemas com variáveis

Denis Doria
thuck

(usa Debian)

Enviado em 30/01/2008 - 09:49h

Cara; no caso do seu if; não pode usar "string1 == string2" tem que usar apenas "string1 = string2"

Leia:

man test

Para mais informações...


3. Re: Problemas com variáveis

Gesiel G
clickbr

(usa Debian)

Enviado em 30/01/2008 - 09:57h

Fiz o teste assim:

if [ "$variavel1 = $variavel2" ]

e também assim:

if [ "$variavel1 == $variavel2" ]

Não deu certo, ele não testa a string.




4. Não entendi

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 30/01/2008 - 09:58h

Não entendi bem o teu problema.

A expressão:
if [ "$variavel1" == "$variavel2" ]

Deveria funcionar!

Esta expressão resultaria em erro de sintaxe se alguma das variáveis fosse vazia e não houvesse as aspas. Ou ainda se tivesse espaços em branco no conteúdo da variável, mas ainda assim SE NÃO HOUVESSE ASPAS no if.

Assim, como está, não tem erro!

Tu estás usando esta expressão dentro de um script?

Cuidou para colocar
#!/bin/bash

no início do script para executar ele como bash mesmo e não com outro shell?


5. Re: Problemas com variáveis

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 30/01/2008 - 10:01h

if [[ "$variavel1" == "$variavel2" ]]


6. Re: Problemas com variáveis

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 30/01/2008 - 10:04h

Oi Denis.

Mas no bash tanto faz usar = ou ==

Eu mesmo SEMPRE usei == pela semelhança com o C.

E o test (comando test que está em /usr/bin/test) não é exatamente o mesmo que as condições bult-in do bash.

A sintaxe desta expressão tu encontra mesmo é no man bash. Navegando com paciência porque o manual do bash é GIGANTE. No caso procurar pelo item "Compound Commands" e depois em "ARITHMETIC EVALUATION" onde destaquei:

== != equality and inequality
& bitwise AND
^ bitwise exclusive OR
| bitwise OR
&& logical AND
|| logical OR
expr?expr:expr
conditional operator
= *= /= %= += -= <<= >>= &= ^= |=
assignment




7. Re: Problemas com variáveis

Gesiel G
clickbr

(usa Debian)

Enviado em 30/01/2008 - 10:05h

Sim, ta tudo certo, todo o script funciona, só esse teste não esta dando certo!


8. Re: Problemas com variáveis

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 30/01/2008 - 10:09h

Gesiel:

A sintaxe CORRETA e que DEVE FUNCIONAR é a primeira que tu colocaste:

if [ "$variavel1" == "$variavel2" ]

Apenas ISTO, nada mais.

Se não está funcionando o problema é outro.
O que tem depois da expressão?>
Colocaste CORRETAMENTE o then, else, fi?

Veja um exemplo COMPLETO:

if [ "$variavel1" == "$variavel2" ]
then
echo "Sao iguais"
else
echo "NAO sao iguais"
fi

Em uma unica linha, precisa de ;

if [ "$variavel1" == "$variavel2" ]; then echo "Iguais"; else echo "Nao";fi

É ISTO, nada mais!
E se tu estiver DENTRO de um script, veja o /bin/bash no inicio como te falei. A sintaxe é outra em outros sheel, como o sh ou o csh...


9. Re: Problemas com variáveis

Gesiel G
clickbr

(usa Debian)

Enviado em 30/01/2008 - 10:17h

Eu quero unir esses dois textos e transformar na variável 2 e depois testar ela no if:

read texto1
read texto2
variavel2="$texto1$texto2"
if [ "$variavel1" == "$variavel2" ];
then
inicio
else
echo "Digite corretamente o texto"
entrar
fi


10. Re: Problemas com variáveis

Gesiel G
clickbr

(usa Debian)

Enviado em 30/01/2008 - 12:53h

Problema sem solução. Será que existe outra maneira de fazer esse exercício?


11. Re: Problemas com variáveis

albert guedes
albertguedes

(usa Gentoo)

Enviado em 30/01/2008 - 13:41h

Se quiserem fazer teste façam no BASH

if [ "$variavel1" = "$variavel2" ]
then
...
fi

para strings, e

if [ $variavel1 == $variavel2 ]
then
...
fi

para valores numéricos, percebam que tem que tomar cuidado com as aspas e os espaços entre os elementos, isso influência o interpretador.


12. Re: Problemas com variáveis

Gesiel G
clickbr

(usa Debian)

Enviado em 30/01/2008 - 14:03h

Sem solução

Não deu certo Albert. Obrigados a todos que postaram



01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts