1
### Характеристики строки
3
${#string} — Длина строки
5
### Извлечение подстроки
7
${string:position} — с position до конца
8
${string:position:length} - с position длиной length символов
9
${string: -length} - последние length символов
11
### Удаление части строки
13
${string#substring} — Удаление самой короткой, из найденых, подстроки $substring в строке $string. Поиск ведется сначала строки
14
${string##substring} — Удаление самой длинной, из найденых, подстроки $substring в строке $string. Поиск ведется сначала строки
15
${string%substring} — Удаление самой короткой, из найденых, подстроки $substring в строке $string. Поиск ведется с конца строки
16
${string%%substring} — Удаление самой длинной, из найденых, подстроки $substring в строке $string. Поиск ведется с конца строки
18
stringZ=abcABC123ABCabc
23
# Удаление самой короткой подстроки.
26
# Удаление самой длинной подстроки.
28
stringZ=abcABC123ABCabc
33
# Удаляется самое короткое совпадение. Поиск ведется с конца $stringZ
37
# Удаляется самое длинное совпадение. Поиск ведется с конца $stringZ
44
${string/substring/replacement} — первое вхождение
46
stringZ=abcABC123ABCabc
47
echo ${stringZ/abc/xyz}
50
${string//substring/replacement} — все вхождения
52
stringZ=abcABC123ABCabc
53
echo ${stringZ//abc/xyz}
56
${var/#Pattern/Replacement} — Если в переменной var найдено совпадение с Pattern, причем совпадающая подстрока расположена в начале строки (префикс), то оно заменяется на Replacement. Поиск ведется с начала строки
58
${var/%Pattern/Replacement} — Если в переменной var найдено совпадение с Pattern, причем совпадающая подстрока расположена в конце строки (суффикс), то оно заменяется на Replacement. Поиск ведется с конца строки
61
stringZ=abcABC123ABCabc
62
echo ${stringZ/#abc/XYZ}
64
# Поиск ведется с начала строки
66
echo ${stringZ/%abc/XYZ}
68
# Поиск ведется с конца строки
70
### Значение по умолчанию
72
${parameter:-defaul} defaul if parameter not defined or empty (parameter= )
73
${parameter-defaul} defaul if parameter not defined
75
DEFAULT_FILENAME=generic.data
76
filename=${1:-$DEFAULT_FILENAME}
77
# Если имя файла не задано явно, то последующие операторы будут работать
78
#+ с файлом "generic.data".