LINUX.ORG.RU

История изменений

Исправление Shushundr, (текущая версия) :

MY_PV="${PV%_p*}-ga"

bash заменит ${PV%_p*} на значение переменной PV, удалив самую длинную подстроку, соответствующую шаблону _p*

MY_PV=«21.0.1-ga»

https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html

SLOT="${MY_PV%%[.+]*}"

В Bash, когда вы используете %% в параметрическом расширении, это означает, что вы хотите удалить самую длинную подстроку, соответствующую шаблону, с конца строки.

bash заменит ${MY_PV%%[.+]*} на значение переменной MY_PV, удалив самую длинную подстроку, соответствующую шаблону [.+]* с конца строки.

openjdk-21.0.1_p12.ebuild

SLOT=«21» или SLOT=«2» ?

PV="21.0.1_p12"
MY_PV="${PV%_p*}-ga"
SLOT="${MY_PV%%[.+]*}"

echo "${SLOT}";

выводит 21, но мне непонятно, почему.
https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html

Пробовал убрать «+» (SLOT="${MY_PV%%[.]*}"), ничего не поменялось.
И квадратные скобки пробовал убрать (SLOT="${MY_PV%%.*}"), то же самое…

Исправление Shushundr, :

MY_PV="${PV%_p*}-ga"

bash заменит ${PV%_p*} на значение переменной PV, удалив самую длинную подстроку, соответствующую шаблону _p*

MY_PV=«21.0.1-ga»

https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html

SLOT="${MY_PV%%[.+]*}"

В Bash, когда вы используете %% в параметрическом расширении, это означает, что вы хотите удалить самую длинную подстроку, соответствующую шаблону, с конца строки.

bash заменит ${MY_PV%%[.+]*} на значение переменной MY_PV, удалив самую длинную подстроку, соответствующую шаблону [.+]* с конца строки.

openjdk-21.0.1_p12.ebuild

SLOT=«21» или SLOT=«2» ?

PV="21.0.1_p12"
MY_PV="${PV%_p*}-ga"
SLOT="${MY_PV%%[.+]*}"

echo "${SLOT}";

выводит 21, но мне непонятно, почему.
https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html

Пробовал убрать «+» (SLOT="${MY_PV%%[.]*}"), ничего не поменялось.

Исправление Shushundr, :

MY_PV="${PV%_p*}-ga"

bash заменит ${PV%_p*} на значение переменной PV, удалив самую длинную подстроку, соответствующую шаблону _p*

MY_PV=«21.0.1-ga»

https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html

SLOT="${MY_PV%%[.+]*}"

В Bash, когда вы используете %% в параметрическом расширении, это означает, что вы хотите удалить самую длинную подстроку, соответствующую шаблону, с конца строки.

bash заменит ${MY_PV%%[.+]*} на значение переменной MY_PV, удалив самую длинную подстроку, соответствующую шаблону [.+]* с конца строки.

openjdk-21.0.1_p12.ebuild

SLOT=«21» или SLOT=«2» ?

PV="21.0.1_p12"
MY_PV="${PV%_p*}-ga"
SLOT="${MY_PV%%[.+]*}"

echo "${SLOT}";

выводит 21, но мне непонятно, почему.
https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html

Исправление Shushundr, :

MY_PV="${PV%_p*}-ga"

bash заменит ${PV%_p*} на значение переменной PV, удалив самую длинную подстроку, соответствующую шаблону _p*

MY_PV=«21.0.1-ga»

https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html

SLOT="${MY_PV%%[.+]*}"

В Bash, когда вы используете %% в параметрическом расширении, это означает, что вы хотите удалить самую длинную подстроку, соответствующую шаблону, с конца строки.

bash заменит ${MY_PV%%[.+]*} на значение переменной MY_PV, удалив самую длинную подстроку, соответствующую шаблону [.+]* с конца строки.

openjdk-21.0.1_p12.ebuild

SLOT=«21» или SLOT=«2» ?

Исходная версия Shushundr, :

MY_PV=«${PV%_p*}-ga»

bash заменит ${PV%_p*} на значение переменной PV, удалив самую длинную подстроку, соответствующую шаблону _p*

MY_PV=«21.0.1-ga»

https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html

SLOT=«${MY_PV%%[.+]*}»

В Bash, когда вы используете %% в параметрическом расширении, это означает, что вы хотите удалить самую длинную подстроку, соответствующую шаблону, с конца строки.

bash заменит ${MY_PV%%[.+]} на значение переменной MY_PV, удалив самую длинную подстроку, соответствующую шаблону [.+] с конца строки.

openjdk-21.0.1_p12.ebuild

SLOT=«21» или SLOT=«2» ?