Załóżmy, że chcę porównać gcc
wersję, aby zobaczyć, czy system ma zainstalowaną wersję minimalną, czy nie.
Aby sprawdzić gcc
wersję, wykonałem następujące czynności
gcc --version | head -n1 | cut -d" " -f4
Wynik był
4.8.5
Napisałem więc proste if
stwierdzenie, aby sprawdzić tę wersję pod kątem innej wartości
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
Ale generuje błąd:
[: integer expression expected: 4.8.5
Zrozumiałem swój błąd polegający na tym, że do porównywania używałem łańcuchów i -lt
wymaga liczby całkowitej. Czy jest jakiś inny sposób na porównanie wersji?
gcc -dumpversion