Переменные bash

Материал из ALT Linux Wiki

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

Дабы больше не искать, решил перевести сюда тот самый блок, ради которого всё затевалось.

Манипуляции с переменными на примере URL='https://www.altlinux.org/index.php'.
Действие Оператор Пример Результат
Счёт… …числа символов в переменной
${#переменная}
"${#URL}" https://www.altlinux.org/index.php


34

Удаление… всех символов кроме части (не обязательно заданной длины) от символа:
  • <начало> или
  • < -конец> (пробел обязателен)
${переменная:начало[:длина]}
${переменная: -конец[:длина]}
"${URL: -22:8}}" https://www.altlinux.org/index.php


altlinux

кратчайшего совпадения с шаблоном в начале строки
${переменная#шаблон}
"${URL#*/}" https://www.altlinux.org/index.php


/www.altlinux.org/index.php

длиннейшего совпадения с шаблоном в начале строки
${переменная##шаблон}
"${URL##*/}" https://www.altlinux.org/index.php


index.php

кратчайшего совпадения с шаблоном в конце строки
${переменная%шаблон}
"${URL%/*}" https://www.altlinux.org/index.php


https://www.altlinux.org

длиннейшего совпадения с шаблоном в конце строки
${переменная%%шаблон}
"${URL%%/*}" https://www.altlinux.org/index.php


https:

Замена… первого совпадения с шаблоном
${переменная/шаблон/заменитель}
"${URL/./-}" https://www.altlinux.org/index.php


https://www-altlinux.org/index.php

каждого совпадения с шаблоном
${переменная//шаблон/заменитель}
"${URL//./-}" https://www.altlinux.org/index.php


https://www-altlinux-org/index-php

…шаблона в начале строки
${переменная/#шаблон/заменитель}
"${URL/#*:/ftp:}" https://www.altlinux.org/index.php


ftp://www.altlinux.org/index.php

…шаблона в конце строки
${переменная/%шаблон/заменитель}
"${URL/%.php/.jpg}" https://www.altlinux.org/index.php


https://www.altlinux.org/index.jpg

…регистра:
  • только для первого символа
  • либо для всех символов (из шаблона или вообще)
${переменная[^|,][^^|,,[шаблон]]}
"${URL^^[ht]}" https://www.altlinux.org/index.php


HTTps://www.altlinux.org/index.pHp

Обратная связь

@gbIMoBou

Другие статьи