Leggi che per confrontare le stringhe all'interno if
dobbiamo usare parentesi quadre doppie. Alcuni libri dicono che il confronto può essere fatto da =
. Ma funziona anche con questo ==
.
#!/bin/bash
a="hello"
b="world"
if [[ $a == $b ]];then
echo "equal"
fi
C'è una differenza tra =
e ==
nel confronto?
==
, che è il motivo per cui si dovrebbe utilizzare =
(uguaglianza) con [
, e ==
(pattern matching, con la semantica che sono Citando-aware) con [[
. Vedere help test
vs help [[
.
[ foo == foo ] && echo foo
sicuramente stampa foo
, indicando che ==
funziona con [
. Tuttavia, se per "è per" intendi "si intendeva utilizzare", allora ho un'obiezione minore.
[[
in primo luogo che ha una comprensione significativamente più sfumata di tokenizzazione, suddivisione di parole, ecc ...
=
è per[
.==
è per[[
.