Bạn có thể tìm thấy định nghĩa -lt
và -gt
trong tài liệu của test
lệnh ( man test
) hoặc trong tài liệu về bash vì đây test
là lệnh tích hợp trong bash (giống như trong hầu hết các shell khác).
-lt
và -gt
là so sánh số (nhỏ hơn [và không bằng], lớn hơn [và không bằng]). Ngoài ra còn có các toán tử ít hơn / lớn hơn hoặc bằng nhau , -le
và các toán tử -ge
bằng và không bằng nhau -eq
và -ne
. Đây là các toán tử số, do đó sẽ có lỗi nếu một trong hai bên không phải là số và 9
được coi là nhỏ hơn 10
.
Các tên lý do như -lt
được sử dụng thay vì thông thường <
là ký tự <
sẽ được hiểu là một chuyển hướng. Các toán tử =
và !=
cũng tồn tại, nhưng chúng thực hiện so sánh chuỗi: test 00 -eq 0
đúng trong khi đó test 00 = 0
là sai.
Một số shell, bao gồm bash, cũng có các toán tử <
và >
thực hiện so sánh từ điển chuỗi, vì vậy test 9 \< 10
là sai vì 9
được sắp xếp trước 1
(dấu gạch chéo ngược ngăn ký tự <
được hiểu là toán tử chuyển hướng). Các shell này cũng cung cấp cú pháp ngoặc kép cho các thử nghiệm, ví dụ [[ 9 < 10 ]]
(trái ngược với [ 9 \< 10 ]
), không thể có các chuyển hướng bên trong để <
không cần trích dẫn.
echo
tuyên bố trong mã trả lời câu hỏi của bạn.