Đọc rằng để so sánh các chuỗi bên trong if
chúng ta cần sử dụng dấu ngoặc vuông. Một số cuốn sách nói rằng so sánh có thể được thực hiện bởi =
. Nhưng nó hoạt động với ==
quá.
#!/bin/bash
a="hello"
b="world"
if [[ $a == $b ]];then
echo "equal"
fi
Có một sự khác biệt giữa =
và ==
trong so sánh?
==
, đó là lý do tại sao bạn nên sử dụng =
(bình đẳng) với [
và ==
(khớp mẫu, với ngữ nghĩa được trích dẫn) [[
. Xem help test
so với help [[
.
[ foo == foo ] && echo foo
chắc chắn in foo
, chỉ ra rằng nó ==
hoạt động với [
. Tuy nhiên, nếu "dành cho" bạn có nghĩa là "được dự định sử dụng", thì tôi sẽ ít phản đối hơn.
[[
ở nơi đầu tiên có sự hiểu biết nhiều sắc thái hơn về tokenisation, chia tách từ, v.v ...
=
là cho[
.==
là cho[[
.