[
là một lệnh dựng sẵn shell trong bash và trong zsh:
$ type [
[ is a shell builtin
Từ tài liệu Lệnh dựng sẵn Shell :
Các lệnh dựng sẵn được chứa trong chính shell . Khi tên của lệnh dựng sẵn được sử dụng làm từ đầu tiên của lệnh đơn giản (xem Lệnh đơn giản ), shell sẽ thực thi lệnh trực tiếp mà không cần gọi chương trình khác. Các lệnh dựng sẵn là cần thiết để thực hiện chức năng không thể hoặc bất tiện để có được với các tiện ích riêng biệt.
Tài liệu chính thức ( $ help test
) chỉ cho phép sử dụng =
:
CHUINGI1 = CHUING2
Đúng nếu các chuỗi bằng nhau.
Vì vậy, biểu thức chính xác sẽ là:
$ [ "a" = "a" ] && echo yes
yes
Điều gì xảy ra là bash ít nghiêm ngặt hơn một chút. Hỗ trợ ==
toán tử [
dường như là một phần mở rộng bash và không nên sử dụng nó:
chuỗi1 == chuỗi2
chuỗi1 = chuỗi2
Đúng nếu các chuỗi bằng nhau. Khi được sử dụng với lệnh [[, lệnh này thực hiện khớp mẫu như được mô tả ở trên (xem Cấu trúc có điều kiện ).
'=' nên được sử dụng với lệnh kiểm tra sự phù hợp POSIX.
Nếu bạn muốn sử dụng ==
, bạn nên sử dụng [[
từ khóa:
$ [[ "a" == "a" ]] && echo yes
yes
Hãy nhớ rằng [[
ít di động hơn (không phải là POSIX). Nhưng cả bash và zsh đều hỗ trợ nó.
$PATH
được tìm kiếm. và==
không phải làtest
cú pháp hợp lệ cho/usr/bin/[
anway. Chỉ=
là tốt thôi