O que há de errado com este codigo ?

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

Vagner de Paula
Seingalt

(usa Ubuntu)

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 ?


  


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

Fernando
phoemur

(usa Debian)

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 ?

William Amaral de Souza
Williamm

(usa Linux Mint)

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 ?

Paulo
paulo1205

(usa Ubuntu)

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.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts