Bạn có thể tìm thấy định nghĩa -ltvà -gttrong tài liệu của testlệnh ( man test) hoặc trong tài liệu về bash vì đây testlà lệnh tích hợp trong bash (giống như trong hầu hết các shell khác).
-ltvà -gtlà 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 , -levà các toán tử -gebằng và không bằng nhau -eqvà -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 = 0là 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 \< 10là 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.
echotuyên bố trong mã trả lời câu hỏi của bạn.