Возможно, вы знаете, что дистрибутив CentOS Linux - это платформа, полученная из исходных кодов Red Hat Enterprise Linux (RHEL). Таким образом, пакеты, взятые из репозитория Centos, должны работать на RHEL и наоборот, если версии совпадают.
См .:
Обратите внимание, что если вы установите что-либо, кроме RHEL, в свой поддерживаемая установка RHEL, вы можете потерять официальную поддержку. Пакет CentOS, установленный в системе RHEL, не будет поддерживаться Red Hat.
См .:
Объем покрытия производственной поддержки ( «Не поддерживается: проекты сообщества, на которых основаны корпоративные выпуски». )
Как использовать Extra Пакеты для Enterprise Linux (EPEL)? ( «Установка неподдерживаемых пакетов не обязательно делает систему неподдерживаемой глобальной службой поддержки Red Hat. Однако служба глобальной поддержки Red Hat не сможет поддерживать или отладить проблемы с пакетами, не поставляемыми в стандартные каналы RHEL. ")
clean_version=${project_version%%-*}
.
%
и %%
совпадают на конце по определению, поэтому нет необходимости в привязке, такой как $
, чтобы говорить о совпадении в конец.
Для справки #
и ##
совпадают в начале.
Интересным случаем является расширение /
, которое по умолчанию соответствует любому месту. Здесь первый символ , являющийся #
или %
, заставляет шаблон совпадать в начале или в конце.
Идиома bash $ {var %% pattern}
использует шаблон, а не регулярное выражение.
В шаблоне . *
означает нечто иное, чем предполагаемое вами «что-нибудь».
Фактически, простой *
действительно соответствует запуску любого символа в шаблоне.
Кроме того, тип соответствия %
(по своей природе) ограничен $
.
Итак, это:
echo ${project_version%%-*}
Будет соответствовать самому длинному совпадению ( %%
вместо %
) тире ( -
) с последующим запуском любого символа до конца строки внутри project_version
.
Тогда правильное назначение будет:
clean_version=${project_version%%-*}