Come posso confrontare due variabili stringa in una dichiarazione 'if' in Bash?
Sto cercando di far funzionare una dichiarazione if
in Bash (usando Ubuntu):
#!/bin/bash
s1="hi"
s2="hi"
if ["$s1" == "$s2"]
then
echo match
fi
Ho provato varie forme dell'istruzione if
, usando [["$s1" == "$s2"]]
, con e senza virgolette, usando =
, ==
e -eq
, ma ottengo ancora il seguente errore:
[ciao: comando non trovato
Ho guardato vari siti e tutorial e li ho copiati, ma non funziona - cosa sto facendo di sbagliato?
Alla fine, voglio dire se $s1
contiene $s2
, quindi come posso farlo?
Ho appena risolto la parte degli spazi... :/ Come faccio a dire contiene?
Ho provato
if [[ "$s1" == "*$s2*" ]]
ma non ha funzionato.
568
3
Avete bisogno di spazi:
Io suggerirei:
Senza le doppie virgolette e con una sola uguale.
Non ho accesso a una scatola linux in questo momento, ma [ è in realtà un programma (e un bash builtin), quindi penso che tu debba mettere uno spazio tra [ e il primo parametro.
Nota anche che l'operatore di uguaglianza delle stringhe sembra essere un singolo =