Переменные bash: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 51: Строка 51:
|-
|-
|<code>${переменная/#образец/заменитель}</code>
|<code>${переменная/#образец/заменитель}</code>
|Замена ''первого'' вхождения, совпадающего с образцом.
|Замена образца ''в начале'' строки.
|<code>"${url/#<span style="background-color:yellow">*:<span/>/<span style="background-color:yellow">ftp:</span>}"</code>
|<code>"${url/#<span style="background-color:yellow">*:</span>/<span style="background-color:yellow">ftp:</span>}"</code>
|style="text-align:center"|<span style="background-color:yellow">https:</span>//guide.bash.academy/variables.html
|style="text-align:center"|<span style="background-color:yellow">https:</span>//guide.bash.academy/variables.html
↓<br/>
↓<br/>
Строка 58: Строка 58:
|-
|-
|<code>${переменная/%образец/заменитель}</code>
|<code>${переменная/%образец/заменитель}</code>
|Замена ''каждого'' вхождения, совпадающего с образцом.
|Замена образца ''в конце'' строки.
|<code>"${url/%<span style="background-color:yellow">.html</span>/<span style="background-color:yellow">.jpg</span>}"</code>
|<code>"${url/%<span style="background-color:yellow">.html</span>/<span style="background-color:yellow">.jpg</span>}"</code>
|style="text-align:center"|https://guide.bash.academy/variables<span style="background-color:yellow">.html</span>
|style="text-align:center"|https://guide.bash.academy/variables<span style="background-color:yellow">.html</span>

Версия от 03:49, 16 марта 2022

Всякий раз вспоминая, как можно выудить часть bash-переменной без разбиения её вызовом команд, гуглил что-то вроде этой статьи. Чтобы в дальнейшем искать не приходилось, решил перевести сюда тот самый блок, ради которого всё затевалось.

Манипуляции переменными на примере строки url='https://guide.bash.academy/variables.html'.
Действие Оператор Описание Пример Результат
Удаление ${переменная#образец} Удаление кратчайшего куска, совпадающего с образцом в начале строки. "${url#*/}" https://guide.bash.academy/variables.html


/guide.bash.academy/variables.html

${переменная##образец} Удаление длиннейшего куска, совпадающего с образцом в начале строки. "${url##*/}" https://guide.bash.academy/variables.html


variables.html

${переменная%образец} Удаление кратчайшего куска, совпадающего с образцом в конце строки. "${url%/*}" https://guide.bash.academy/variables.html


https://guide.bash.academy

${переменная%%образец} Удаление длиннейшего куска, совпадающего с образцом в конце строки. "${url%%/*}" https://guide.bash.academy/variables.html


https:

Замена ${переменная/образец/заменитель} Замена первого вхождения, совпадающего с образцом. "${url/./-}" https://guide.bash.academy/variables.html


https://guide-bash.academy/variables.html

${переменная//образец/заменитель} Замена каждого вхождения, совпадающего с образцом. "${url//./-}" https://guide.bash.academy/variables.html


https://guide-bash-academy/variables-html

${переменная/#образец/заменитель} Замена образца в начале строки. "${url/#*:/ftp:}" https://guide.bash.academy/variables.html


ftp://guide.bash.academy/variables.html

${переменная/%образец/заменитель} Замена образца в конце строки. "${url/%.html/.jpg}" https://guide.bash.academy/variables.html


https://guide.bash.academy/variables.jpg