BASH: переменные – замена текста, срезы и непрямые ссылки

Автор: | 16/07/2014
 

terminalЗамена значения в переменных – ${variable//ШАБЛОН/СТРОКА}

Можно заменить всё значение переменной, например так:

$ a="firstvalue"
$ echo ${a//firstvalue/secondvalue}
secondvalue

Можно выполнить замену только попадающей под ШАБЛОН части:

$ a="111222"
$ echo ${a//1/3}
333222

При использовании одного слеша “/” – будет выполнена замена только первого совпадения:

$ a="111222"
$ echo ${a/1/3}
311222

Получение среза в значении переменной – ${variable:OТСТУП:ДЛИНА}

Сделать срез до конца значения:

$ a="123456789"
$ echo ${a:3}
456789

Или на фиксированную длину, например – два символа после 3-го:

$ echo ${a:3:2}
45

Непрямые ссылки – ${!variable}

$ firstvariable=firstvariable
$ secondvariable=firstvariable
$ echo ${!secondvariable}
firstvariable