Giả sử tôi muốn so sánh gcc
phiên bản để xem hệ thống có cài đặt phiên bản tối thiểu hay không.
Để kiểm tra gcc
phiên bản, tôi đã thực hiện như sau
gcc --version | head -n1 | cut -d" " -f4
Đầu ra là
4.8.5
Vì vậy, tôi đã viết một if
tuyên bố đơn giản để kiểm tra phiên bản này với một số giá trị khác
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
Nhưng nó ném một lỗi:
[: integer expression expected: 4.8.5
Tôi hiểu sai lầm của mình rằng tôi đã sử dụng các chuỗi để so sánh và -lt
yêu cầu số nguyên. Vì vậy, có cách nào khác để so sánh các phiên bản?
gcc -dumpversion