Kako lahko primerjam dve spremenljivki z nizom v stavku 'if' v programu Bash?

V Bash (uporabljam Ubuntu) skušam doseči, da bi izjava if delovala:

#!/bin/bash

s1="hi"
s2="hi"

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

Poskusil sem različne oblike izjave if, z uporabo [["$s1" == "$s2"]], z narekovaji in brez njih, z uporabo =, == in -eq, vendar še vedno dobim naslednjo napako:

[hi: ukaza ni bilo mogoče najti

Ogledal sem si različna spletna mesta in navodila ter jih kopiral, vendar ne deluje - kaj delam narobe?

Na koncu želim povedati, ali $s1 vsebuje $s2, kako naj to storim?

Pravkar sem razvozlal del s presledki... :/ Kako naj rečem vsebuje?

Poskusil sem

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

vendar ni delovalo.

Potrebujete prostore:

if [ "$s1" == "$s2" ]
Komentarji (4)

Predlagam:

#!/bin/bash

s1="hi"
s2="hi"

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

Brez dvojnih narekovajev in samo z enim enakim.

Komentarji (3)

Trenutno nimam dostopa do linuxa, vendar je [ pravzaprav program (in vgrajeni program bash), zato mislim, da morate med [ in prvim parametrom postaviti presledek.

Upoštevajte tudi, da se zdi, da je operator enakosti nizov en sam =

Komentarji (1)