Переменные bash: различия между версиями
Дым (обсуждение | вклад) Нет описания правки |
Дым (обсуждение | вклад) Нет описания правки |
||
Строка 65: | Строка 65: | ||
|- | |- | ||
|<pre>${переменная[^|^^|,|,,][шаблон]}</pre> | |<pre>${переменная[^|^^|,|,,][шаблон]}</pre> | ||
|Замена регистра для первого или всех символов из шаблона<br/>(для | |Замена регистра для первого (<code>^|,</code>) или всех (<code>^^|,,</code>) символов из шаблона<br/> | ||
(для '''вообще всех''' символов шаблон не нужен) | |||
|<code>"${url^^<span style="background-color:yellow">[ht]</span>}"</code> | |<code>"${url^^<span style="background-color:yellow">[ht]</span>}"</code> | ||
|style="text-align:center"|<span style="background-color:yellow">htt</span>ps://guide.bas<span style="background-color:yellow">h</span>.academy/variables.<span style="background-color:yellow">ht</span>ml | |style="text-align:center"|<span style="background-color:yellow">htt</span>ps://guide.bas<span style="background-color:yellow">h</span>.academy/variables.<span style="background-color:yellow">ht</span>ml |
Версия от 07:48, 16 марта 2022
Всякий раз вспоминая, как можно выудить часть bash-переменной без разбиения её вызовом команд, гуглил что-то вроде этой статьи. Чтоб больше не искать, решил перевести сюда тот самый блок, ради которого всё затевалось.
Оператор | Описание | Пример | Результат | |
---|---|---|---|---|
Удаление | ${переменная#шаблон} |
Удаление кратчайшего куска, совпадающего с шаблоном в начале строки | "${url#*/}"
|
↓ |
${переменная##шаблон} |
Удаление длиннейшего куска, совпадающего с шаблоном в начале строки | "${url##*/}"
|
↓ | |
${переменная%шаблон} |
Удаление кратчайшего куска, совпадающего с шаблоном в конце строки | "${url%/*}"
|
https://guide.bash.academy | |
${переменная%%шаблон} |
Удаление длиннейшего куска, совпадающего с шаблоном в конце строки | "${url%%/*}"
|
https: ↓ | |
Замена | ${переменная/шаблон/заменитель} |
Замена первого вхождения, совпадающего с шаблоном | "${url/./-}"
|
https://guide.bash.academy/variables.html
↓ |
${переменная//шаблон/заменитель} |
Замена каждого вхождения, совпадающего с шаблоном | "${url//./-}"
|
https://guide.bash.academy/variables.html
↓ | |
${переменная/#шаблон/заменитель} |
Замена шаблона в начале строки | "${url/#*:/ftp:}"
|
https://guide.bash.academy/variables.html
↓ | |
${переменная/%шаблон/заменитель} |
Замена шаблона в конце строки | "${url/%.html/.jpg}"
|
https://guide.bash.academy/variables.html | |
${переменная[^|^^|,|,,][шаблон]} |
,) или всех (^^|,, ) символов из шаблона(для вообще всех символов шаблон не нужен) |
"${url^^[ht]}"
|
https://guide.bash.academy/variables.html
↓ | |
Символы | ${#переменная} |
Число символов в переменной | "${#url}"
|
https://guide.bash.academy/variables.html
↓ |
${переменная:начало[:длина]} ${переменная: -конец[:длина]} |
Вывод части переменной заданной длины от символа №<начало> или (с обратной стороны) №< -конец>
Пробел перед минусом обязателен! |
"${url:7}"
|
↓ |