5
วิธีเปรียบเทียบเวอร์ชันของโปรแกรมในเชลล์สคริปต์
สมมติว่าฉันต้องการเปรียบเทียบgccรุ่นเพื่อดูว่าระบบได้ติดตั้งรุ่นขั้นต่ำหรือไม่ ในการตรวจสอบgccเวอร์ชั่นฉันดำเนินการดังต่อไปนี้ gcc --version | head -n1 | cut -d" " -f4 ผลลัพธ์ก็คือ 4.8.5 ดังนั้นฉันจึงเขียนifคำสั่งง่ายๆเพื่อตรวจสอบรุ่นนี้เทียบกับค่าอื่น ๆ if [ "$(gcc --version | head -n1 | cut -d" " -f4)" -lt 5.0.0 ]; then echo "Less than 5.0.0" else echo "Greater than 5.0.0" fi แต่มันเกิดข้อผิดพลาด: [: integer expression expected: 4.8.5 ฉันเข้าใจความผิดพลาดของฉันว่าฉันกำลังใช้สตริงเพื่อเปรียบเทียบและ-ltต้องการจำนวนเต็ม ดังนั้นมีวิธีอื่นในการเปรียบเทียบรุ่นหรือไม่