Другой подход (модифицированная версия @joynes), который сравнивает точечные версии, как задано в вопросе
(т. е. «1.2», «2.3.4», «1.0», «1.10.1» и т. д.).
Максимальное количество позиций должно быть известно заранее. Подход предполагает максимум 3 варианта позиции.
expr $(printf "$1\n$2" | sort -t '.' -k 1,1 -k 2,2 -k 3,3 -g | sed -n 2p) != $2
пример использования:
expr $(printf "1.10.1\n1.7" | sort -t '.' -k 1,1 -k 2,2 -k 3,3 -g | sed -n 2p) != "1.7"
возвращает: 1, поскольку 1.10.1 больше 1,7
expr $(printf "1.10.1\n1.11" | sort -t '.' -k 1,1 -k 2,2 -k 3,3 -g | sed -n 2p) != "1.11"
возвращает: 0, поскольку 1.10.1 ниже, чем 1.11