Я хочу написать сценарий оболочки / bash, который может проверить, что все мои инструменты сборки соответствуют определенным требованиям к версии, и вернуть / не пройти.
Пример:
Я использую cmake, makeи gcc.
$ cmake --version
cmake version 3.13.4
CMake suite maintained and supported by Kitware (kitware.com/cmake).
$ make --version
GNU Make 4.2.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ gcc --version
gcc (Ubuntu 9.2.1-9ubuntu2) 9.2.1 20191008
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
В первом случае я хотел бы получить пропуск / неудачу, если система точно соответствует этим номерам версий, во 2-м случае я хотел бы получить пропуск / неудачу,система предоставляет минимально номер версии или новее (= больше, в отношении 1.2.2 новее, чем 1.1.3).
Итак, чего я хочу добиться, это:
- шаг 1: определите номер версии, разделенный точкой, состоящий из 3 цифр (также разрешите конструкции, подобные 123.22.1)
- шаг 2: разбейте эту строку на 3 раздела: основной, вспомогательный, исправление.
После того, как я смогу сравнить эти строковые значения с моим ожиданием и вернуться с результатом.
Есть ли простое решение с такими инструментами, как awk или аналогичные?