สมมติว่าฉันต้องการเปรียบเทียบ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
ต้องการจำนวนเต็ม ดังนั้นมีวิธีอื่นในการเปรียบเทียบรุ่นหรือไม่
gcc -dumpversion