Переменные bash: различия между версиями
Дым (обсуждение | вклад) Нет описания правки |
Дым (обсуждение | вклад) Нет описания правки |
||
Строка 3: | Строка 3: | ||
Дабы больше не искать, решил перевести сюда тот самый блок, ради которого всё затевалось. | Дабы больше не искать, решил перевести сюда тот самый блок, ради которого всё затевалось. | ||
{|class="wikitable" | {|class="wikitable" | ||
|+<strong>Манипуляции с переменными на примере <code>URL='https://www.altlinux.org/index. | |+<strong>Манипуляции с переменными на примере <code>URL='https://www.altlinux.org/index.php'</code>.</strong> | ||
|- | |- | ||
!colspan=2|Действие!!Оператор!!Пример!!Результат | !colspan=2|Действие!!Оператор!!Пример!!Результат | ||
Строка 11: | Строка 11: | ||
|<pre>${#переменная}</pre> | |<pre>${#переменная}</pre> | ||
|<code>"${<span style="background-color:yellow">#</span>URL}"</code> | |<code>"${<span style="background-color:yellow">#</span>URL}"</code> | ||
|style="text-align:center"|https://www.altlinux.org/index. | |style="text-align:center"|https://www.altlinux.org/index.php | ||
↓<br/> | ↓<br/> | ||
35 | 35 | ||
Строка 24: | Строка 24: | ||
</pre> | </pre> | ||
|<code>"${URL:<span style="background-color:yellow"> -23</span>:<span style="background-color:yellow">8</span>}}"</code> | |<code>"${URL:<span style="background-color:yellow"> -23</span>:<span style="background-color:yellow">8</span>}}"</code> | ||
|style="text-align:center"|<s><span style="background-color:yellow">https://www.</span></s>altlinux<s><span style="background-color:yellow">.org/index. | |style="text-align:center"|<s><span style="background-color:yellow">https://www.</span></s>altlinux<s><span style="background-color:yellow">.org/index.php</span></s> | ||
↓<br/> | ↓<br/> | ||
altlinux | altlinux | ||
Строка 31: | Строка 31: | ||
|<pre>${переменная#шаблон}</pre> | |<pre>${переменная#шаблон}</pre> | ||
|<code>"${URL#<span style="background-color:yellow">*/</span>}"</code> | |<code>"${URL#<span style="background-color:yellow">*/</span>}"</code> | ||
|style="text-align:center"|<s><span style="background-color:yellow">https:/</span></s>/www.altlinux.org/index. | |style="text-align:center"|<s><span style="background-color:yellow">https:/</span></s>/www.altlinux.org/index.php | ||
↓<br/> | ↓<br/> | ||
/www.altlinux.org/index. | /www.altlinux.org/index.php | ||
|- | |- | ||
|…'''длиннейшего''' совпадения с шаблоном '''в начале''' строки | |…'''длиннейшего''' совпадения с шаблоном '''в начале''' строки | ||
|<pre>${переменная##шаблон}</pre> | |<pre>${переменная##шаблон}</pre> | ||
|<code>"${URL##<span style="background-color:yellow">*/</span>}"</code> | |<code>"${URL##<span style="background-color:yellow">*/</span>}"</code> | ||
|style="text-align:center"|<s><span style="background-color:yellow">https://www.altlinux.org/</span></s>index. | |style="text-align:center"|<s><span style="background-color:yellow">https://www.altlinux.org/</span></s>index.php | ||
↓<br/> | ↓<br/> | ||
index. | index.php | ||
|- | |- | ||
|…'''кратчайшего''' совпадения с шаблоном '''в конце''' строки | |…'''кратчайшего''' совпадения с шаблоном '''в конце''' строки | ||
|<pre>${переменная%шаблон}</pre> | |<pre>${переменная%шаблон}</pre> | ||
|<code>"${URL%<span style="background-color:yellow">/*</span>}"</code> | |<code>"${URL%<span style="background-color:yellow">/*</span>}"</code> | ||
|style="text-align:center"|https://www.altlinux.org<s><span style="background-color:yellow">/index. | |style="text-align:center"|https://www.altlinux.org<s><span style="background-color:yellow">/index.php</span></s> | ||
↓<br/> | ↓<br/> | ||
https://www.altlinux.org | https://www.altlinux.org | ||
Строка 52: | Строка 52: | ||
|<pre>${переменная%%шаблон}</pre> | |<pre>${переменная%%шаблон}</pre> | ||
|<code>"${URL%%<span style="background-color:yellow">/*</span>}"</code> | |<code>"${URL%%<span style="background-color:yellow">/*</span>}"</code> | ||
|style="text-align:center"|https:<s><span style="background-color:yellow">//www.altlinux.org/index. | |style="text-align:center"|https:<s><span style="background-color:yellow">//www.altlinux.org/index.php</span></s> | ||
↓<br/> | ↓<br/> | ||
https: | https: | ||
Строка 60: | Строка 60: | ||
|<pre>${переменная/шаблон/заменитель}</pre> | |<pre>${переменная/шаблон/заменитель}</pre> | ||
|<code>"${URL/<span style="background-color:yellow">.</span>/<span style="background-color:yellow">-</span>}"</code> | |<code>"${URL/<span style="background-color:yellow">.</span>/<span style="background-color:yellow">-</span>}"</code> | ||
|style="text-align:center"|https://www<span style="background-color:yellow">.</span>altlinux.org/index. | |style="text-align:center"|https://www<span style="background-color:yellow">.</span>altlinux.org/index.php | ||
↓<br/> | ↓<br/> | ||
https://www<span style="background-color:yellow">-</span>altlinux.org/index. | https://www<span style="background-color:yellow">-</span>altlinux.org/index.php | ||
|- | |- | ||
|…'''каждого''' совпадения с шаблоном | |…'''каждого''' совпадения с шаблоном | ||
|<pre>${переменная//шаблон/заменитель}</pre> | |<pre>${переменная//шаблон/заменитель}</pre> | ||
|<code>"${URL//<span style="background-color:yellow">.</span>/<span style="background-color:yellow">-</span>}"</code> | |<code>"${URL//<span style="background-color:yellow">.</span>/<span style="background-color:yellow">-</span>}"</code> | ||
|style="text-align:center"|https://www<span style="background-color:yellow">.</span>altlinux<span style="background-color:yellow">.</span>org/index<span style="background-color:yellow">.</span> | |style="text-align:center"|https://www<span style="background-color:yellow">.</span>altlinux<span style="background-color:yellow">.</span>org/index<span style="background-color:yellow">.</span>php | ||
↓<br/> | ↓<br/> | ||
https://www<span style="background-color:yellow">-</span>altlinux<span style="background-color:yellow">-</span>org/index<span style="background-color:yellow">-</span> | https://www<span style="background-color:yellow">-</span>altlinux<span style="background-color:yellow">-</span>org/index<span style="background-color:yellow">-</span>php | ||
|- | |- | ||
|…шаблона '''в начале''' строки | |…шаблона '''в начале''' строки | ||
|<pre>${переменная/#шаблон/заменитель}</pre> | |<pre>${переменная/#шаблон/заменитель}</pre> | ||
|<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>//www.altlinux.org/index. | |style="text-align:center"|<span style="background-color:yellow">https:</span>//www.altlinux.org/index.php | ||
↓<br/> | ↓<br/> | ||
<span style="background-color:yellow">ftp:</span>//www.altlinux.org/index. | <span style="background-color:yellow">ftp:</span>//www.altlinux.org/index.php | ||
|- | |- | ||
|…шаблона '''в конце''' строки | |…шаблона '''в конце''' строки | ||
|<pre>${переменная/%шаблон/заменитель}</pre> | |<pre>${переменная/%шаблон/заменитель}</pre> | ||
|<code>"${URL/%<span style="background-color:yellow">. | |<code>"${URL/%<span style="background-color:yellow">.php</span>/<span style="background-color:yellow">.jpg</span>}"</code> | ||
|style="text-align:center"|https://www.altlinux.org/index<span style="background-color:yellow">. | |style="text-align:center"|https://www.altlinux.org/index<span style="background-color:yellow">.php</span> | ||
↓<br/> | ↓<br/> | ||
https://www.altlinux.org/index<span style="background-color:yellow">.jpg</span> | https://www.altlinux.org/index<span style="background-color:yellow">.jpg</span> | ||
Строка 90: | Строка 90: | ||
|<pre>${переменная[^|,][^^|,,[шаблон]]}</pre> | |<pre>${переменная[^|,][^^|,,[шаблон]]}</pre> | ||
|<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://www.altlinux.org/index.<span style="background-color:yellow"> | |style="text-align:center"|<span style="background-color:yellow">htt</span>ps://www.altlinux.org/index.p<span style="background-color:yellow">h</span>p | ||
↓<br/> | ↓<br/> | ||
<span style="background-color:yellow">HTT</span>ps://www.altlinux.org/index.<span style="background-color:yellow"> | <span style="background-color:yellow">HTT</span>ps://www.altlinux.org/index.p<span style="background-color:yellow">H</span>p | ||
|} | |} | ||
{{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}} | ||
[[Категория:Admin]] | [[Категория:Admin]] |
Версия от 00:46, 19 марта 2022
Всякий раз вспоминая, как можно выудить часть bash-переменной без разбиения её вызовом команд, гуглил что-то вроде этой статьи.
Дабы больше не искать, решил перевести сюда тот самый блок, ради которого всё затевалось.
Действие | Оператор | Пример | Результат | |
---|---|---|---|---|
Счёт… | …числа символов в переменной | ${#переменная} |
"${#URL}"
|
https://www.altlinux.org/index.php
↓ |
Удаление… | …всех символов кроме части (не обязательно заданной длины) от символа:
|
${переменная:начало[:длина]} ${переменная: -конец[:длина]} |
"${URL: -23:8}}"
|
↓ |
…кратчайшего совпадения с шаблоном в начале строки | ${переменная#шаблон} |
"${URL#*/}"
|
↓ | |
…длиннейшего совпадения с шаблоном в начале строки | ${переменная##шаблон} |
"${URL##*/}"
|
↓ | |
…кратчайшего совпадения с шаблоном в конце строки | ${переменная%шаблон} |
"${URL%/*}"
|
https://www.altlinux.org | |
…длиннейшего совпадения с шаблоном в конце строки | ${переменная%%шаблон} |
"${URL%%/*}"
|
https: ↓ | |
Замена… | …первого совпадения с шаблоном | ${переменная/шаблон/заменитель} |
"${URL/./-}"
|
https://www.altlinux.org/index.php
↓ |
…каждого совпадения с шаблоном | ${переменная//шаблон/заменитель} |
"${URL//./-}"
|
https://www.altlinux.org/index.php
↓ | |
…шаблона в начале строки | ${переменная/#шаблон/заменитель} |
"${URL/#*:/ftp:}"
|
https://www.altlinux.org/index.php
↓ | |
…шаблона в конце строки | ${переменная/%шаблон/заменитель} |
"${URL/%.php/.jpg}"
|
https://www.altlinux.org/index.php | |
…регистра:
|
${переменная[^|,][^^|,,[шаблон]]} |
"${URL^^[ht]}"
|
https://www.altlinux.org/index.php
↓ |