Встроенные команды Bash
В этом разделе описаны встроенные команды, уникальные для Bash или расширенные в нём. Некоторые из этих команд определены стандартом POSIX.
-
alias -
alias [-p] [name[=value] ...]
Если аргументы отсутствуют или указан параметр -p,
aliasвыводит список псевдонимов в стандартный поток вывода в формате, позволяющем использовать его повторно в качестве ввода. Если указаны аргументы, для каждого name определяется псевдоним со значением value. Если value не указано, выводятся имя и значение псевдонима name. Завершающий пробел в value приводит к проверке следующего слова на замену псевдонимом при раскрытии псевдонима во время разбора команды.aliasвозвращает истину, если только не указано name (без соответствующего =value), для которого не определён псевдоним. Псевдонимы описаны в разделе Псевдонимы. -
bind -
bind [-m keymap] [-lsvSVX] bind [-m keymap] [-q function] [-u function] [-r keyseq] bind [-m keymap] -f filename bind [-m keymap] -x keyseq[: ]shell-command bind [-m keymap] keyseq:function-name bind [-m keymap] keyseq:readline-command bind [-m keymap] -p|-P [readline-command] bind readline-command-line
Отображает текущие привязки клавиш и функций Readline (см. раздел Редактирование командной строки), привязывает последовательность клавиш к функции или макросу Readline либо к команде оболочки или задаёт переменную Readline. Каждый аргумент, не являющийся параметром, — это привязка клавиш или команда в формате файла инициализации Readline (см. раздел Файл инициализации Readline), но каждую привязку или команду необходимо передавать как отдельный аргумент; например, «"\C-x\C-r":re-read-init-file».
В приведённых ниже описаниях параметры, выводящие результат в формате, пригодном для повторного чтения, форматируют его как команды, которые можно поместить в файл инициализации Readline или передать как отдельные аргументы команде
bind.Если указаны параметры, они имеют следующие значения:
-m keymap-
Использовать keymap в качестве раскладки клавиш, к которой будут применяться последующие привязки. Допустимые имена keymap:
emacs,emacs-standard,emacs-meta,emacs-ctlx,vi,vi-move,vi-commandиvi-insert.viэквивалентноvi-command(vi-moveтакже является синонимом);emacsэквивалентноemacs-standard. -l-
Вывести имена всех функций Readline.
-p-
Отобразить имена функций Readline и их привязки в формате, пригодном для передачи аргументом последующей команде
bindили для использования в файле инициализации Readline. Если после обработки параметров остались аргументы,bindсчитает их именами команд Readline и ограничивает вывод этими именами. -P-
Вывести текущие имена функций Readline и их привязки. Если после обработки параметров остались аргументы,
bindсчитает их именами команд Readline и ограничивает вывод этими именами. -s-
Отобразить последовательности клавиш Readline, привязанные к макросам, и выводимые ими строки в формате, пригодном для передачи аргументом последующей команде
bindили для использования в файле инициализации Readline. -S-
Отобразить последовательности клавиш Readline, привязанные к макросам, и выводимые ими строки.
-v-
Отобразить имена переменных Readline и их значения в формате, пригодном для передачи аргументом последующей команде
bindили для использования в файле инициализации Readline. -V-
Вывести текущие имена переменных Readline и их значения.
-f filename-
Прочитать привязки клавиш из файла filename.
-q function-
Отобразить последовательности клавиш, вызывающие указанную функцию Readline function.
-u function-
Отменить все привязки последовательностей клавиш к указанной функции Readline function.
-r keyseq-
Удалить текущую привязку для keyseq.
-x keyseq:shell-command-
Выполнять shell-command при каждом вводе keyseq. Разделителем между keyseq и shell-command может быть пробельный символ или двоеточие, за которым может следовать пробельный символ. Если разделителем служит пробельный символ, shell-command необходимо заключить в двойные кавычки, и Readline раскрывает специальные обратные косые черты в shell-command перед сохранением. Если разделителем служит двоеточие, двойные кавычки можно не использовать, а Readline не раскрывает строку команды перед сохранением. Поскольку всё выражение привязки клавиш должно быть одним аргументом, его следует заключить в одинарные кавычки. При выполнении shell-command оболочка присваивает переменной
READLINE_LINEсодержимое буфера строки Readline, а переменнымREADLINE_POINTиREADLINE_MARK— текущую позицию точки вставки и сохранённую позицию точки вставки (mark) соответственно. Оболочка присваивает переменнойREADLINE_ARGUMENTлюбой числовой аргумент, переданный пользователем. Если аргумент не был передан, эта переменная не устанавливается. Если выполненная команда изменяет значение любой из переменныхREADLINE_LINE,READLINE_POINTилиREADLINE_MARK, новые значения отразятся в состоянии редактирования. -XВывести все последовательности клавиш, привязанные к командам оболочки, и соответствующие команды в формате, пригодном для повторного использования в качестве аргумента последующей команды
bind.
Возвращается нулевой код завершения, если не указан недопустимый параметр и не произошла ошибка.
-
builtin -
builtin [shell-builtin [args]]
Выполнить указанную встроенную команду оболочки shell-builtin, передав ей args, и вернуть её код завершения. Это полезно при определении функции оболочки с тем же именем, что и у встроенной команды, чтобы сохранить функциональность встроенной команды внутри функции. Возвращаемый код отличен от нуля, если shell-builtin не является встроенной командой оболочки.
-
caller -
caller [expr]
Возвращает контекст любого активного вызова подпрограммы (функции оболочки или сценария, выполненного с помощью встроенной команды
.илиsource).Если expr не указан,
callerвыводит номер строки и имя исходного файла текущего вызова подпрограммы. Если в качестве expr передано неотрицательное целое число,callerвыводит номер строки, имя подпрограммы и исходный файл, соответствующие указанной позиции в текущем стеке вызовов. Эти дополнительные сведения можно использовать, например, для вывода трассировки стека. Текущий кадр имеет номер 0.Возвращаемое значение равно 0, если оболочка выполняет вызов подпрограммы и expr соответствует допустимой позиции в стеке вызовов.
-
command -
command [-pVv] command [arguments ...]
Встроенная команда
commandвыполняет command с аргументами arguments, игнорируя любую функцию оболочки с именем command. Выполняются только встроенные команды оболочки или команды, найденные при поиске вPATH. Если существует функция оболочки с именемls, выполнение «command ls» внутри этой функции запустит внешнюю командуls, а не вызовет функцию рекурсивно. Параметр -p означает, что следует использовать значениеPATHпо умолчанию, гарантирующее обнаружение всех стандартных утилит. В этом случае возвращается код 127, если command не найдена или произошла ошибка, и код завершения command в противном случае.Если указан параметр -V или -v,
commandвыводит описание command. Параметр -v выводит одно слово, указывающее команду или имя файла, использованные для вызова command; параметр -V выводит более подробное описание. В этом случае возвращается нулевой код, если command найдена, и ненулевой в противном случае. -
declare -
declare [-aAfFgiIlnrtux] [-p] [name[=value] ...]
Объявить переменные и назначить им атрибуты. Если имена name не указаны, вместо этого выводятся значения переменных или функций оболочки.
Параметр -p выводит атрибуты и значения каждого name. Если -p используется с аргументами name, дополнительные параметры, кроме -f и -F, игнорируются.
Если -p указан без аргументов name,
declareвыводит атрибуты и значения всех переменных, имеющих атрибуты, заданные дополнительными параметрами. Если вместе с -p не указаны другие параметры,declareвыводит атрибуты и значения всех переменных оболочки. Параметр -f ограничивает вывод функциями оболочки.Параметр -F запрещает вывод определений функций; выводятся только имя функции и её атрибуты. Если параметр оболочки
extdebugвключён с помощьюshopt(см. раздел Встроенная команда shopt), также выводятся имя исходного файла и номер строки, где определено каждое name. -F подразумевает -f.Параметр -g принудительно создаёт или изменяет переменные в глобальной области видимости, даже если
declareвыполняется в функции оболочки. Этот параметр игнорируется, еслиdeclareвыполняется не в функции оболочки.Параметр -I заставляет локальные переменные наследовать атрибуты (за исключением атрибута
nameref) и значение любой существующей переменной с тем же именем name во внешней области видимости. Если такой переменной нет, локальная переменная изначально не установлена.Следующие параметры позволяют ограничить вывод переменными с указанными атрибутами или назначить переменным атрибуты:
-a-
Каждый name — переменная индексированного массива (см. раздел Массивы).
-A-
Каждый name — переменная ассоциативного массива (см. раздел Массивы).
-f-
Каждый name обозначает функцию оболочки.
-i-
Переменная обрабатывается как целое число; при присваивании ей значения выполняется арифметическое вычисление (см. раздел Арифметические вычисления в оболочке).
-l-
При присваивании значения переменной все символы верхнего регистра преобразуются в нижний регистр. Атрибут верхнего регистра отключается.
-n-
Назначить каждому name атрибут
nameref, превращая его в ссылку на имя другой переменной. Другая переменная определяется значением name. Все ссылки, присваивания и изменения атрибутов name, кроме операций, использующих или изменяющих сам атрибут -n, выполняются над переменной, на которую ссылается значение name. Атрибут nameref нельзя назначить переменным массива. -r-
Сделать переменные name доступными только для чтения. Впоследствии этим именам нельзя будет присвоить значения или сбросить их.
-t-
Назначить каждому name атрибут
trace. Трассируемые функции наследуют перехватчикиDEBUGиRETURNвызывающей оболочки. Атрибут трассировки не имеет специального значения для переменных. -u-
При присваивании значения переменной все символы нижнего регистра преобразуются в верхний регистр. Атрибут нижнего регистра отключается.
-xПометить каждую переменную name для экспорта последующим командам через окружение.
Использование «+» вместо «-» отключает указанный атрибут, за исключением того, что «+a» и «+A» нельзя использовать для уничтожения переменных массива, а «+r» не удаляет атрибут «только для чтения».
При использовании в функции
declareделает каждую переменную name локальной, как и командаlocal, если не указан параметр -g. Если после имени переменной следует =value, переменной присваивается значение value.При использовании -a или -A и синтаксиса составного присваивания для создания переменных массива дополнительные атрибуты вступают в силу только при последующих присваиваниях.
Возвращается нулевой код, если не обнаружен недопустимый параметр, не предпринимается попытка определить функцию с помощью «-f foo=bar», присвоить значение переменной только для чтения, присвоить значение переменной массива без использования синтаксиса составного присваивания (см. раздел Массивы), если все переменные name имеют допустимые имена переменных оболочки, не предпринимается попытка отключить режим «только для чтения» для переменной только для чтения, отключить режим массива для переменной массива или вывести несуществующую функцию с помощью -f.
-
echo -
echo [-neE] [arg ...]
Вывести аргументы arg, разделённые пробелами и завершаемые символом новой строки. Возвращается код 0, если не произошла ошибка записи. Если указан -n, завершающий символ новой строки не выводится.
Если указан параметр -e,
echoинтерпретирует следующие символы с обратной косой чертой. Параметр -E отключает интерпретацию этих escape-последовательностей, в том числе в системах, где они интерпретируются по умолчанию. Параметр оболочкиxpg_echoопределяет, интерпретирует лиechoкакие-либо параметры и раскрывает ли эти escape-последовательности.echoне интерпретирует -- как признак конца параметров.echoинтерпретирует следующие escape-последовательности:\aсигнал (звонок)
\bвозврат на одну позицию
\cпрекратить дальнейший вывод
\e\Eсимвол ESC
\fперевод страницы
\nновая строка
\rвозврат каретки
\tгоризонтальная табуляция
\vвертикальная табуляция
\\обратная косая черта
\0nnnВосьмибитный символ со значением nnn в восьмеричной системе счисления (от нуля до трёх восьмеричных цифр).
\xHHВосьмибитный символ со значением HH в шестнадцатеричной системе счисления (одна или две шестнадцатеричные цифры).
\uHHHHСимвол Unicode (ISO/IEC 10646) со значением HHHH в шестнадцатеричной системе счисления (от одной до четырёх шестнадцатеричных цифр).
\UHHHHHHHHСимвол Unicode (ISO/IEC 10646) со значением HHHHHHHH в шестнадцатеричной системе счисления (от одной до восьми шестнадцатеричных цифр).
echoвыводит любые неизвестные символы с обратной косой чертой без изменений. -
enable -
enable [-a] [-dnps] [-f filename] [name ...]
Включить или отключить встроенные команды оболочки. Отключение встроенной команды позволяет выполнить исполняемый файл с тем же именем, что и у встроенной команды оболочки, без указания полного пути, хотя обычно оболочка ищет встроенные команды раньше файлов.
Если указан -n, имена name отключаются. В противном случае имена name включаются. Например, чтобы использовать двоичный файл
test, найденный с помощью$PATH, вместо встроенной версии команды, введите «enable -n test».Если указан параметр -p или не указаны аргументы name, выводится список встроенных команд оболочки. Если другие аргументы отсутствуют, список содержит все включённые встроенные команды оболочки. Параметр -n означает, что выводятся только отключённые встроенные команды. Параметр -a означает, что каждая встроенная команда выводится с указанием, включена она или нет. Параметр -s ограничивает вывод
enableспециальными встроенными командами POSIX.Параметр -f загружает новую встроенную команду с именем name из разделяемого объекта filename в системах, поддерживающих динамическую загрузку. Если filename не содержит косой черты, Bash использует значение переменной
BASH_LOADABLES_PATHкак список каталогов, разделённых двоеточиями, для поиска файла filename. ЗначениеBASH_LOADABLES_PATHпо умолчанию зависит от системы и может включать «.», чтобы обеспечить поиск в текущем каталоге. Параметр -d удаляет встроенную команду, загруженную с помощью -f. Если вместе с -f используется -s, новая встроенная команда становится специальной встроенной командой POSIX (см. раздел Специальные встроенные команды).Если параметры не указаны и name не является встроенной командой оболочки,
enableпопытается загрузить name из разделяемого объекта с именем name, как если бы команда имела вид «enable -f name name».Возвращается нулевой код, если name является встроенной командой оболочки и новая встроенная команда успешно загружена из разделяемого объекта.
-
help -
help [-dms] [pattern]
Вывести справочную информацию о встроенных командах. Если указан pattern,
helpвыводит подробную справку обо всех командах, соответствующих pattern, как описано ниже; в противном случае выводится список всех встроенных команд и составных команд оболочки.Если указаны параметры, они имеют следующие значения:
-dВывести краткое описание каждого pattern
-mВывести описание каждого pattern в формате, похожем на страницу руководства
-sВывести только краткую справку по использованию каждого pattern
Если pattern содержит символы сопоставления с образцом (см. раздел Сопоставление с образцом), он рассматривается как шаблон оболочки, и
helpвыводит описание каждой темы справки, соответствующей pattern.Если же pattern в точности совпадает с именем темы справки,
helpвыводит описание этой темы. В противном случаеhelpвыполняет поиск по префиксу и выводит описания всех соответствующих тем справки.Возвращается нулевой код, если найдена команда, соответствующая pattern.
-
let -
let expression [expression ...]
Встроенная команда
letпозволяет выполнять арифметические операции над переменными оболочки. Каждое expression вычисляется как арифметическое выражение в соответствии с правилами, приведёнными ниже в разделе Арифметические вычисления в оболочке. Если последнее expression вычисляется в 0,letвозвращает 1; в противном случаеletвозвращает 0. -
local -
local [option] name[=value] ...
Для каждого аргумента создать локальную переменную с именем name и присвоить ей значение value. Параметр option может быть любым из параметров, принимаемых командой
declare.localможно использовать только внутри функции; она ограничивает видимую область действия переменной name этой функцией и её дочерними функциями. Использованиеlocalвне функции является ошибкой.Если name равно «-», набор параметров оболочки становится локальным для функции, в которой вызвана
local: все параметры оболочки, изменённые с помощью встроенной командыsetвнутри функции после вызоваlocal, восстанавливают исходные значения при возврате из функции. Восстановление выполняется так, как если бы для возврата прежних значений была запущена последовательность командset.Если операнды отсутствуют,
localвыводит список локальных переменных в стандартный поток вывода.Возвращается нулевой код, если
localиспользуется внутри функции и указано допустимое name, не являющееся переменной только для чтения. -
logout -
logout [n]
Завершить оболочку входа в систему и вернуть родительской оболочке код состояния n.
-
mapfile -
mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]Прочитать строки из стандартного ввода или из файлового дескриптора fd, если указан параметр -u, и записать их в переменную индексированного массива array. По умолчанию используется переменная
MAPFILE. Если указаны параметры, они имеют следующие значения:-dИспользовать первый символ delim для завершения каждой входной строки вместо символа новой строки. Если delim — пустая строка,
mapfileзавершает строку при чтении нулевого символа.-nСкопировать не более count строк. Если count равно 0, скопировать все строки.
-OНачать запись в array с индекса origin. По умолчанию используется индекс 0.
-sОтбросить первые count прочитанных строк.
-tУдалить завершающий delim (по умолчанию — символ новой строки) из каждой прочитанной строки.
-uЧитать строки из файлового дескриптора fd, а не из стандартного ввода.
-CВыполнять callback после чтения каждых quantum строк. Параметр -c задаёт значение quantum.
-cУказать число строк, читаемых между вызовами callback.
Если указан -C без -c, значение quantum по умолчанию равно 5000. При выполнении callback ей передаются дополнительные аргументы: индекс следующего элемента массива, которому будет присвоено значение, и строка, которая будет присвоена этому элементу. callback выполняется после чтения строки, но до присваивания элемента массива.
Если явное начальное смещение не задано,
mapfileочищает array перед записью в неё.mapfileвозвращает ноль, если указаны допустимые параметры и аргументы параметров, array является допустимым и доступным для присваивания индексированным массивом. -
printf -
printf [-v var] format [arguments]
Записать отформатированные arguments в стандартный поток вывода, руководствуясь строкой format. Параметр -v присваивает результат переменной var, а не выводит его в стандартный поток вывода.
format — это строка символов, содержащая три типа элементов: обычные символы, которые просто копируются в стандартный поток вывода; escape-последовательности символов, которые преобразуются и копируются в стандартный поток вывода; и спецификаторы формата, каждый из которых вызывает вывод следующего аргумента argument. Помимо стандартных символов формата
printf(3)cCsSndiouxXeEfFgGaA,printfинтерпретирует следующие дополнительные спецификаторы формата:%bЗаставляет
printfраскрывать escape-последовательности с обратной косой чертой в соответствующем аргументе argument так же, какecho -e(см. раздел Встроенные команды Bash).%q-
Заставляет
printfвыводить соответствующий аргумент argument в формате, пригодном для повторного использования в качестве ввода оболочки.%qи%QP используют стиль кавычек ANSI-C (см. раздел Кавычки ANSI-C), если строка аргумента содержит символы, требующие такого оформления; в противном случае используется экранирование обратной косой чертой. Если в строке формата используетсяprintfальтернативная форма, эти два формата заключают строку аргумента в одинарные кавычки. %Q-
Подобно
%q, но применяет заданную точность к аргументу argument перед заключением его в кавычки. %(datefmt)TЗаставляет
printfвыводить строку даты и времени, полученную при использовании datefmt в качестве строки формата дляstrftime(3). Соответствующий аргумент argument — целое число, обозначающее количество секунд с начала эпохи. Этот спецификатор формата распознаёт два особых значения аргумента: -1 обозначает текущее время, а -2 — время запуска оболочки. Если аргумент не указан, преобразование выполняется так, как если бы было задано значение -1. Это исключение из обычного поведенияprintf.
Спецификаторы формата %b, %q и %T используют ширину поля и точность, заданные в спецификации формата, и выводят указанное число байтов из раскрытого аргумента (или используют поле такой ширины), который обычно содержит больше символов, чем исходный аргумент.
Спецификатор формата %n принимает соответствующий аргумент, рассматриваемый как имя переменной оболочки.
Спецификаторы формата %s и %c принимают модификатор l (long), который преобразует строку аргумента в широкую строку символов и применяет заданные ширину поля и точность в символах, а не в байтах. Спецификаторы формата %S и %C эквивалентны соответственно %ls и %lc.
Аргументы спецификаторов формата, отличных от строковых, рассматриваются как константы языка C, за исключением того, что в начале допускается знак плюс или минус, а если первым символом является одинарная или двойная кавычка, значением считается числовое значение следующего символа в текущей локали.
Строка format используется повторно по мере необходимости, чтобы обработать все аргументы arguments. Если для format требуется больше аргументов arguments, чем передано, недостающие спецификаторы формата обрабатываются так, как если бы для них было передано нулевое значение или пустая строка, в зависимости от ситуации. При успешном выполнении возвращается ноль; ненулевой код возвращается при указании недопустимого параметра, ошибке записи или ошибке присваивания.
-
read
-
read [-Eers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]Прочитать одну строку из стандартного ввода или из файлового дескриптора fd, переданного в качестве аргумента параметра -u, разделить её на слова, как описано выше в разделе Разбиение на слова, и присвоить первое слово первому name, второе слово — второму name и так далее. Если слов больше, чем имён, оставшиеся слова вместе с разделителями между ними присваиваются последнему name. Если из потока ввода прочитано меньше слов, чем имён, оставшимся именам присваиваются пустые значения. Символы в значении переменной
IFSиспользуются для разбиения строки на слова по тем же правилам, которые оболочка применяет при подстановке (описаны выше в разделе Разбиение на слова). Символ обратной косой черты ‘\’ отменяет специальное значение следующего прочитанного символа и используется для продолжения строки.Если указаны параметры, они имеют следующие значения:
-a aname-
Слова присваиваются последовательным индексам индексированного массива aname, начиная с 0. Перед присваиванием все элементы удаляются из aname. Остальные аргументы name игнорируются.
-d delim-
Первый символ delim завершает строку ввода вместо символа новой строки. Если delim — пустая строка,
readзавершит строку при чтении символа NUL. -e-
Если стандартный ввод поступает с терминала,
readиспользует Readline (см. раздел Редактирование командной строки) для получения строки. Readline использует текущие параметры редактирования (или параметры по умолчанию, если редактирование строк ранее не было активировано), но использует автодополнение имён файлов Readline по умолчанию. -E-
Если стандартный ввод поступает с терминала,
readиспользует Readline (см. раздел Редактирование командной строки) для получения строки. Readline использует текущие параметры редактирования (или параметры по умолчанию, если редактирование строк ранее не было активировано), но использует автодополнение Bash по умолчанию, включая программируемое автодополнение. -i text-
Если для чтения строки используется Readline,
readпомещает text в буфер редактирования до начала редактирования. -n nchars-
readвозвращает управление после чтения nchars символов, не дожидаясь полной строки ввода, если не встретит EOF или не истечёт время ожиданияread, но учитывает разделитель, если до него прочитано меньше nchars символов. -N nchars-
readвозвращает управление после чтения ровно nchars символов, не дожидаясь полной строки ввода, если не встретит EOF или не истечёт время ожиданияread. Символы-разделители во вводе не обрабатываются особым образом и не приводят к возвратуread, пока не будет прочитано nchars символов. Результат не разбивается по символам изIFS; предполагается, что переменной будут присвоены именно прочитанные символы (за исключением обратной косой черты; см. параметр -r ниже). -p prompt-
Вывести prompt без завершающего символа новой строки перед попыткой прочитать ввод, но только если ввод поступает с терминала.
-r-
Если указан этот параметр, обратная косая черта не считается символом экранирования. Обратная косая черта считается частью строки. В частности, пара «обратная косая черта — символ новой строки» не может использоваться для продолжения строки.
-s-
Тихий режим. Если ввод поступает с терминала, вводимые символы не отображаются.
-t timeout-
Заставить
readзавершиться по тайм-ауту и вернуть ошибку, если полная строка ввода (или указанное число символов) не будет прочитана за timeout секунд. timeout может быть десятичным числом с дробной частью после десятичной точки. Этот параметр действует только в том случае, еслиreadчитает ввод с терминала, канала или другого специального файла; при чтении обычных файлов он не действует. Если уreadистекает время ожидания, все частично прочитанные данные сохраняются в указанную переменную name, а команда возвращает статус больше 128. Если timeout равен 0,readнемедленно возвращает управление, не пытаясь прочитать данные. В этом случае статус завершения равен 0, если данные доступны в указанном файловом дескрипторе или чтение вернёт EOF; в противном случае статус ненулевой. -u fdЧитать ввод из файлового дескриптора fd, а не из стандартного ввода.
За исключением случая, когда delim — пустая строка,
readигнорирует символы NUL во вводе.Если аргументы name не указаны,
readприсваивает прочитанную строку без завершающего разделителя, но без других изменений, переменнойREPLY.Статус завершения равен нулю, если не достигнут конец файла, не истекло время ожидания
read(в этом случае статус больше 128), не произошла ошибка присваивания переменной (например, при присваивании переменной только для чтения) и в качестве аргумента параметра -u не указан недопустимый файловый дескриптор. -
readarray -
readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]Читать строки из стандартного ввода в индексированный массив array или из файлового дескриптора fd, если указан параметр -u.
Синоним для
mapfile. -
source -
source [-p path] filename [arguments]
Синоним для
.(см. раздел Встроенные команды оболочки Bourne). -
type -
type [-afptP] [name ...]
Указать, как интерпретировалось бы каждое name, если бы оно использовалось как имя команды.
Если используется параметр -t,
typeвыводит одно слово: ‘alias’, ‘keyword’, ‘function’, ‘builtin’ или ‘file’, если name является соответственно псевдонимом, зарезервированным словом оболочки, функцией оболочки, встроенной командой оболочки или исполняемым файлом. Если name не найдено,typeничего не выводит и возвращает статус ошибки.Если используется параметр -p,
typeвозвращает имя исполняемого файла, который был бы найден при поиске в$PATHдляname, либо ничего, если при использовании -t не было бы возвращено ‘file’.Параметр -P принудительно выполняет поиск по пути для каждого name, даже если при использовании -t не было бы возвращено ‘file’.
Если name присутствует в таблице хешированных команд, параметры -p и -P выводят хешированное значение, которое не обязательно соответствует файлу, встречающемуся первым в
$PATH.Если используется параметр -a,
typeвозвращает все места, содержащие команду с именем name. Сюда входят псевдонимы, зарезервированные слова, функции и встроенные команды, однако параметры поиска по пути (-p и -P) можно указать, чтобы ограничить вывод исполняемыми файлами. Если -a указан вместе с -p,typeне просматривает таблицу хешированных команд и выполняет только поискPATHдля name.Если используется параметр -f,
typeне пытается искать функции оболочки, как это делает встроенная командаcommand.Статус возврата равен нулю, если найдены все аргументы name, и ненулевому значению, если хотя бы один из них не найден.
-
typeset -
typeset [-afFgrxilnrtux] [-p] [name[=value] ...]
Команда
typesetпредоставляется для совместимости с оболочкой Korn. Это синоним встроенной командыdeclare. -
ulimit -
ulimit [-HS] -a ulimit [-HS] [-bcdefiklmnpqrstuvxPRT] [limit]
ulimitпозволяет управлять ресурсами, доступными оболочке и запускаемым ею процессам, в системах, поддерживающих такое управление. Если указан параметр, он интерпретируется следующим образом:-S-
Изменить и вывести мягкое ограничение, связанное с ресурсом.
-H-
Изменить и вывести жёсткое ограничение, связанное с ресурсом.
-a-
Вывести все текущие ограничения; ограничения не устанавливаются.
-b-
Максимальный размер буфера сокета.
-c-
Максимальный размер создаваемых файлов дампа памяти.
-d-
Максимальный размер сегмента данных процесса.
-e-
Максимальный приоритет планирования («nice»).
-f-
Максимальный размер файлов, записываемых оболочкой и её дочерними процессами.
-i-
Максимальное количество ожидающих сигналов.
-k-
Максимальное количество выделяемых kqueue.
-l-
Максимальный объём памяти, который можно заблокировать.
-m-
Максимальный размер резидентного набора (многие системы не соблюдают это ограничение).
-n-
Максимальное количество открытых файловых дескрипторов (большинство систем не позволяют задавать это значение).
-p-
Размер буфера канала.
-q-
Максимальное количество байтов в очередях сообщений POSIX.
-r-
Максимальный приоритет планирования реального времени.
-s-
Максимальный размер стека.
-t-
Максимальное процессорное время в секундах.
-u-
Максимальное количество процессов, доступных одному пользователю.
-v-
Максимальный объём виртуальной памяти, доступной оболочке и, в некоторых системах, её дочерним процессам.
-x-
Максимальное количество блокировок файлов.
-P-
Максимальное количество псевдотерминалов.
-R-
Максимальное время выполнения процесса реального времени до блокировки, в микросекундах.
-TМаксимальное количество потоков.
Если указано значение limit и не используется параметр -a, limit становится новым значением для указанного ресурса. Специальные значения limit
hard,softиunlimitedобозначают соответственно текущее жёсткое ограничение, текущее мягкое ограничение и отсутствие ограничения. После установки жёсткое ограничение нельзя повысить пользователю, не являющемуся суперпользователем; мягкое ограничение можно увеличить до значения жёсткого ограничения. В противном случаеulimitвыводит текущее значение мягкого ограничения для указанного ресурса, если не указан параметр -H. Если указано несколько ресурсов, перед значением выводятся имя ограничения и единица измерения, если она применима. При установке новых ограничений, если не указан ни -H, ни -S,ulimitустанавливает и жёсткое, и мягкое ограничения. Если параметр не указан, подразумевается -f.Значения задаются с шагом 1024 байта, за исключением -t, для которого единицей измерения являются секунды; -R, для которого единицей измерения являются микросекунды; -p, для которого единицей измерения являются блоки по 512 байт; -P, -T, -b, -k, -n и -u, для которых значения не масштабируются; а также -c и -f, для которых в режиме POSIX (см. раздел Bash и POSIX) единицей измерения являются блоки по 512 байт.
Статус возврата равен нулю, если не указан недопустимый параметр или аргумент и при установке нового ограничения не произошла ошибка.
-
unalias -
unalias [-a] [name ... ]
Удалить каждое name из списка псевдонимов. Если указан параметр -a, удалить все псевдонимы. Возвращаемое значение истинно, если все указанные name являются определёнными псевдонимами. Псевдонимы описаны в разделе Псевдонимы.
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/bash/manual/html_node/Bash-Builtins.html