Pular para o conteúdo

O que há de errado com este codigo ?

Responder tópico
  • Denunciar
  • Indicar

1. O que há de errado com este codigo ?

Enviado em 26/06/2013 - 20:32h

#!/bin/sh

if [ $1==$2 ] // se primeiro parametro igual ao segundo parametro
then
echo "Iguais" // se for igual mostra que são iguais
else
echo "Não iguais" // senão mostra que não são iguais
fi

echo $1 // mostra o primeiro parametro
echo // dá um espaço de linha
echo $2 // mostra segundo parametro


ele está dando que qualquer numero que eu coloco é igual.Exemplo

./script-1.sh 1 4

Iguais



Vemos que os numeros não são iguais, o que estou fazendo de errado ?

Responder tópico

2. Re: O que há de errado com este codigo ?

Enviado em 26/06/2013 - 21:00h

Tem que colocar espaço no operador, coloca assim que funciona:


#!/bin/sh

if [ $1 == $2 ]
then
echo "Iguais"
else
echo "Não iguais"
fi

3. Re: O que há de errado com este codigo ?

Enviado em 26/06/2013 - 22:16h


#!/bin/sh

if [ $1 -eq $2 ] #se primeiro parametro igual ao segundo parametro
then
echo "Iguais" #se for igual mostra que são iguais
else
echo "Não iguais" #senão mostra que não são iguais
fi

echo $1 # mostra o primeiro parametro
echo # dá um espaço de linha
echo $2 # mostra segundo parametro

4. Re: O que há de errado com este codigo ?

Enviado em 27/06/2013 - 00:27h

O comando [ usa "=" para comparação de strings, não "==".

Como dito, o operador de comparação deve ser separado dos argumentos por espaços.

Por falar em espaços, coloque, por segurança, os operandos da comparação entre aspas, para que seu script não dê pau se alguém algum dia passar ao script um parâmetro vazio ou contendo um ou mais espaços.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder