Como posso comparar duas variáveis string em um ' if' declaração em Bash?

I'estou tentando obter uma declaração if para trabalhar em Bash (utilizando Ubuntu):

#!/bin/bash

s1="hi"
s2="hi"

if ["$s1" == "$s2"]
then
  echo match
fi

I'tentei várias formas da declaração if, utilizando [["$s1" == "$s2"]], com e sem aspas, utilizando =, === e -eq, mas ainda recebo o seguinte erro:

[olá: comando não encontrado

I'olhei vários sites e tutoriais e os copiei, mas não funciona'o que estou fazendo de errado?

Eventualmente, eu quero dizer se $s1 contém $s2, então como eu posso fazer isso?

Acabei de trabalhar os espaços... :/ Como é que eu digo que contém?

Eu tentei

if [[ "$s1" == "*$s2*" ]]

mas não funcionou't funciona.

Você precisa de espaços:

if [ "$s1" == "$s2" ]
Comentários (4)

Eu sugeria:

#!/bin/bash

s1="hi"
s2="hi"

if [ $s1 = $s2 ]
then
  echo match
fi

Sem as aspas duplas e com apenas uma igual.

Comentários (3)

Eu não'não tenho acesso a uma caixa de linux agora, mas [ é na verdade um programa (e uma construção bash), então eu acho que você tem que colocar um espaço entre [ e o primeiro parâmetro.

Note também que o operador de igualdade de cordas parece ser um único =

Comentários (1)