Как создать Ubuntu DVD для Mac? (16.04.1 / Xenial Xerus)

Номера версий на самом деле довольно сложно сравнивать, учитывая, что они часто не являются стандартными математическими сравнениями (например, у этого есть две десятичные точки, которые заставляют bc забрасывать).

Поэтому я перехожу к менее известный вариант в sort, который можно использовать для сортировки строк версии. Рассмотрим следующее:

$ echo -e "v0.1.5\nv0.1.6-2-p343h3d3" | sort -V
v0.1.5
v0.1.6-2-p343h3d3

oli@bert:~$ echo -e "v0.1.5\nv0.1.4-2-p343h3d3" | sort -V
v0.1.4-2-p343h3d3
v0.1.5

В основном это означает, что мы можем сортировать версии так, чтобы последние находились на последней строке. Все, что нам нужно сделать, это сравнение строк с последней строкой внутри if или shortcutted-if:

[[ $(echo -e "v0.1.5\nv0.1.4-2-p343h3d3" | sort -V | tail -1) != "v0.1.5" ]] && echo NEWER

Воспроизведение со строкой v0.1.4-2-p343h3d3. Если вы вставите его на 0.1.6, он выйдет из себя.

Теперь, чтобы вернуть все это к вашей команде:

[[ $(echo -e "v0.1.5\n$(${HOME}/temp/.git describe --always --tags HEAD)" | sort -V | tail -1) != "v0.1.5" ]] && echo NEWER

Или вы можете сломать его читаемость:

THRESHOLD="v0.1.5"
VERSION=$(${HOME}/temp/.git describe --always --tags HEAD)
if [[ $(echo -e "$THRESHOLD\n$VERSION" | sort -V | tail -1) != "$THRESHOLD"  ]]; then
    echo GREATER
fi
1
задан 13 April 2017 в 15:24

0 ответов

Другие вопросы по тегам:

Похожие вопросы: