Olá Boa noite, como estão? no código abaixo, não seria dois símbolo do sinal de igual ?
if [ "$string1" = "$string2" ]; then
# Comandos a serem executados se as strings forem iguais.
fi
obrigado,
Mauricio G
Olá Boa noite, como estão? no código abaixo, não seria dois símbolo do sinal de igual ?
if [ "$string1" = "$string2" ]; then
# Comandos a serem executados se as strings forem iguais.
fi
obrigado,
Mauricio G
Oii, tudo bem?
Boa pergunta, Maurício!
No Bash, quando usamos o comando test
(aquele que aparece entre colchetes [ ]
), o operador correto para comparar strings é um único sinal de igual (=
).
Ou seja, este trecho está certo:
if [ "$string1" = "$string2" ]; then
echo "As strings são iguais!"
fi
E por que não usamos ==
?
test
([ ]
), a forma portável (que funciona em várias versões do shell, inclusive no sh
) é o operador =
.==
também funciona, mas apenas no Bash e em alguns shells compatíveis. Ele é aceito como uma extensão, mas não faz parte do padrão POSIX.=
.Então:
=
→ Comparação de strings (forma correta e portável).==
→ Funciona no Bash, mas não é garantido em outros shells.