Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Verificando se o Conteúdo são iguais

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

1 resposta
solução!

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 ==?

  • No Bash, dentro do comando test ([ ]), a forma portável (que funciona em várias versões do shell, inclusive no sh) é o operador =.
  • Já o == 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, se você quiser escrever scripts que funcionem em qualquer ambiente (Linux, Unix, macOS…), prefira sempre usar =.

Então:

  • = → Comparação de strings (forma correta e portável).
  • == → Funciona no Bash, mas não é garantido em outros shells.
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!