Переменные bash: различия между версиями
Дым (обсуждение | вклад) Нет описания правки |
Дым (обсуждение | вклад) Нет описания правки |
||
Строка 4: | Строка 4: | ||
|+<strong>Манипуляции переменными на примере строки <code>url='https://guide.bash.academy/variables.html'</code>.</strong> | |+<strong>Манипуляции переменными на примере строки <code>url='https://guide.bash.academy/variables.html'</code>.</strong> | ||
|- | |- | ||
! | ! !!Оператор!!Описание!!Пример!!Результат | ||
|- | |- | ||
!rowspan=4|Удаление | !rowspan=4 style="writing-mode:vertical-lr;transform:rotate(180deg)"|Удаление | ||
|<pre>${переменная#шаблон}</pre> | |<pre>${переменная#шаблон}</pre> | ||
|Удаление '''кратчайшего''' куска, совпадающего с шаблоном '''в начале''' строки. | |Удаление '''кратчайшего''' куска, совпадающего с шаблоном '''в начале''' строки. | ||
Строка 35: | Строка 35: | ||
https: | https: | ||
|- | |- | ||
!rowspan=5|Замена | !rowspan=5 style="writing-mode:vertical-lr;transform:rotate(180deg)"|Замена | ||
|<pre>${переменная/шаблон/заменитель}</pre> | |<pre>${переменная/шаблон/заменитель}</pre> | ||
|Замена '''первого''' вхождения, совпадающего с шаблоном. | |Замена '''первого''' вхождения, совпадающего с шаблоном. | ||
Строка 70: | Строка 70: | ||
↓<br/> | ↓<br/> | ||
<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 | <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 | ||
|- | |||
!rowspan=2 style="writing-mode:vertical-lr;transform:rotate(180deg)"|Символы | |||
|<pre>${#переменная}</pre> | |||
|Число символов в переменной. | |||
|<code>"${<span style="background-color:yellow">#</span>url}"</code> | |||
|style="text-align:center"|https://guide.bash.academy/variables.html | |||
↓<br/> | |||
48 | |||
|- | |||
|<pre> | |||
${переменная:начало[:длина]} | |||
${переменная: -конец[:длина]} | |||
</pre> | |||
|Вывод части переменной заданной '''длины''' от символа №<начало> или (с обратной стороны) №< -конец>. | |||
Пробел перед минусом обязателен! | |||
|<code>"${url:<span style="background-color:yellow">7</span>}"</code> | |||
|style="text-align:center"|https:/<span style="background-color:yellow">/guide.bash.academy/variables.html</span> | |||
↓<br/> | |||
/guide.bash.academy/variables.html | |||
|} | |} | ||
{{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}} | ||
[[Категория:Admin]] | [[Категория:Admin]] |
Версия от 04:32, 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}"
|
https://guide.bash.academy/variables.html
↓ |