${variable#pattern}
Если начало значения переменной соответствует шаблону, удалить соответствующую часть минимально возможной длины и вернуть остаток.
${variable##pattern}
Если начало значения переменной соответствует шаблону,
удалить соответствующую часть максимально возможной длины и вернуть остаток.
${variable%pattern)
Если конец значения переменной соответствует шаблону, удалить соответствующую часть минимально возможной длины и вернуть остаток.
${variable% %pattern
Если конец значения переменной соответствует шаблону,
удалить соответствующую часть максимально возможной длины и вернуть остаток.
${var/pat/sub}
Вернуть значение переменной var, заменив первое вхождение pat на sub. Может применяться к переменным $* и $@; в этом случае каждое слово обрабатывается отдельно. Если строка pat начинается с символа #, происходит привязка к началу строки var; если строка pat заканчивается символом %, то привязка к концу строки var.
${var//pat/sub]
Вернуть значение var, заменив все вхождения pat на sub.
${variable:n}
Усечь начало значения переменной и вернуть часть, которая начинается с символа с порядковым номером п. Первый символ имеет номер 0.
${variable:n:l}
Вернуть подстроку длины 1, которая начинается с символа с порядковым номером п. Первый символ имеет номер 0.
Переменные
537
Таблица 7.18. Вычисление выражений
Оператор
Значение
$((arithmetic-expression))
Вернуть результат вычисления выражения. Арифметические операторы описаны в разделе «Арифметические выражения».
Пример:
При выполнении TODAY-date +% -d'; echo $((TODAY+7))
номер текущего дня недели сохраняется в $TODAY, затем к этому значению прибавляется 7 (номер этого же дня на следующей неделе) и сумма выводится на экран.
[[$condition]]
Вернуть значение 1, если условие condition истинно, в противном случае - 0. Синтаксис условий приведен в описании встроенной команды test.
Встроенные переменные интерпретатора
Встроенные переменные автоматически устанавливаются интерпретатором и, как правило, используются в сценариях. Встроенные переменные могут работать с шаблонами подстановок переменных, которые описаны выше. При установке значений переменных символ $ не применяется, но при их последующем использовании он необходим.
Таблица 7.19. Переменные, определяющие поведение
Переменная
Описание
auto_resume
Разрешить переход фонового процесса в режим приоритетного выполнения при вводе подстроки, содержащейся в командной строке процесса. Возможные значения: substring (введенная команда является подстрокой исходной), exact (введенная команда в точности совпадает с исходной) либо
иное значение (введенная команда совпадает с началом исходной).
BASH_ENV
Файл, содержащий выполняемые при старте команды; используется при вызове bash для выполнения сценария.
CDPATH
Список каталогов, в которых выполняется поиск аргумента команды cd; элементы разделяются двоеточием.
EDITOR
Путь текстового редактора пользователя.
IFS
Разделитель слов; используется интерпретатором команд для разбора команд на элементы.
IGNOREEOF
Запретить применение одиночной комбинации CTRL-D для выхода из интерпретатора; при этом для выхода используется команда exit.
В табл. 7.19.-7.22 описаны наиболее часто встречающиеся встроенные переменные bash.
Таблица 7,20. Переменные журнала команд
Переменная
Описание
FCEDIT
Путь редактора, используемого совместно с командой fc.
HISTCMD
Порядковый номер текущей команды в журнале команд.
HISTCONTROL
Если переменная имеет значение ignorespace, то строки, начинающиеся пробелом, не попадают в журнал команд. Если переменная имеет значение ignoredups, то в журнал команд не заносятся строки, совпадающие с последней строкой журнала. Значение ignore-both объединяет оба случая.
HISTFILE
Имя файла журнала команд, с которым происходит работа.
HISTFILESIZE
Максимальное количество строк, хранимых в файле журнала команд. По умолчанию равно 500.
HISTSIZE
Максимальное количество команд, хранимых в журнале. По умолчанию равно 500.
Таблица 7.21. Почтовые переменные
Переменная
Описание
MAIL
Имя файла, который проверяется на наличие новых писем.
<< Назад В начало Далее >> |