คุณสามารถค้นหาคำจำกัดความของ-ltและ-gtในเอกสารของtestคำสั่ง ( man test) หรือในเอกสารประกอบของ bash เนื่องจากtestเป็นคำสั่งในตัวใน bash (เช่นในเชลล์อื่น ๆ ส่วนใหญ่)
-ltและ-gtเป็นการเปรียบเทียบเชิงตัวเลข (น้อยกว่า [และไม่เท่ากับ] มากกว่า - และไม่เท่ากับ]) นอกจากนี้ยังมีผู้ประกอบการน้อย / มากขึ้นหรือเท่ากัน-leและ-geและผู้ประกอบการที่เท่าเทียมกันและไม่เท่ากันและ-eq -neเหล่านี้เป็นผู้ประกอบการที่เป็นตัวเลขจึงจะมีข้อผิดพลาดถ้าทั้งสองข้างไม่เป็นตัวเลขและถือว่าน้อยกว่า910
ชื่อเหตุผลที่ชอบ-ltถูกนำมาใช้มากกว่าปกติ<คือตัวละคร<จะถูกตีความว่าเป็นการเปลี่ยนเส้นทาง ผู้ประกอบการ=และ!=ยังมีอยู่ แต่พวกเขาทำการเปรียบเทียบสตริง: test 00 -eq 0เป็นจริงในขณะที่test 00 = 0เป็นเท็จ
เชลล์บางตัวรวมถึง bash ยังมีโอเปอเรเตอร์<และ>ทำการเปรียบเทียบสตริงพจนานุกรมด้วยดังนั้นจึงtest 9 \< 10เป็นเท็จเพราะ9มีการเรียงลำดับก่อนหน้า1(แบ็กสแลชป้องกันอักขระ<จากการตีความว่าเป็นโอเปอเรเตอร์การเปลี่ยนเส้นทาง) เชลล์เหล่านี้ยังมีไวยากรณ์สองวงเล็บสำหรับการทดสอบเช่น[[ 9 < 10 ]](ตรงข้ามกับ[ 9 \< 10 ]) ซึ่งไม่สามารถมีการเปลี่ยนเส้นทางภายในดังนั้นจึง<ไม่จำเป็นต้องยกมา
echoข้อความในรหัสตอบคำถามของคุณ