Przeczytaj, że do porównywania napisów w środku if
musimy użyć podwójnych nawiasów kwadratowych. Niektóre książki mówią, że porównania można dokonać =
. Ale to też działa ==
.
#!/bin/bash
a="hello"
b="world"
if [[ $a == $b ]];then
echo "equal"
fi
Czy jest jakaś różnica pomiędzy =
i ==
w porównaniu?
==
, dlatego należy używać =
(równość) z [
i ==
(dopasowywanie wzorców, które są ze semantyki cytując-aware) z [[
. Zobacz help test
vs help [[
.
[ foo == foo ] && echo foo
pewno drukuje foo
, wskazując, że ==
działa z [
. Jednakże, jeśli przez „jest dla” masz na myśli, że ”miał być używany z„, to mam mniejszy sprzeciw.
[[
w pierwszej kolejności, która ma znacznie bardziej zróżnicowane rozumienie tokenizacji, dzielenia słów itp.
=
jest dla[
.==
jest dla[[
.