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

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 4: Строка 4:
|+<strong>Манипуляции переменными на примере <code>url='https://guide.bash.academy/variables.html'</code>.</strong>
|+<strong>Манипуляции переменными на примере <code>url='https://guide.bash.academy/variables.html'</code>.</strong>
|-
|-
!&nbsp;!!Описание!!Оператор!!Пример!!Результат
!colspan=2|Действие!!Оператор!!Пример!!Результат
|-
|-
!style="writing-mode:vertical-lr;transform:rotate(180deg)"|Длина
!style="writing-mode:vertical-lr;transform:rotate(180deg)"|Длина

Версия от 00:23, 19 марта 2022

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

Манипуляции переменными на примере url='https://guide.bash.academy/variables.html'.
Действие Оператор Пример Результат
Длина Число символов в переменной
${#переменная}
"${#url}" https://guide.bash.academy/variables.html


41

Удаление… всех символов кроме части (не обязательно заданной длины) от символа:
  • <начало> или
  • < -конец> (пробел обязателен)
${переменная:начало[:длина]}
${переменная: -конец[:длина]}
"${url: -33:5}}" https://guide.bash.academy/variables.html


guide

кратчайшего совпадения с шаблоном в начале строки
${переменная#шаблон}
"${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

…регистра:
  • только для первого символа
  • либо для всех символов (из шаблона или вообще)
${переменная[^|,][^^|,,[шаблон]]}
"${url^^[ht]}" https://guide.bash.academy/variables.html


HTTps://guide.basH.academy/variables.HTml