Bash - командный интерпретатор GNU Bourne

ВСТРОЕННЫЕ КОМАНДЫ ИНТЕРПРЕТАТОРА


Если явно не указано иначе, каждая из описанных в этом разделе встроенных команд, принимающих опции, начинающиеся с дефиса (-), распознает два дефиса (--) как признак завершения опций.

: [аргументы]

Никакого эффекта; команда не делает ничего, кроме подстановки аргументов и выполнения указанных перенаправлений. Возвращает нулевой код возврата.

. имя_файла [аргументы]

source имя_файла [аргументы]

Читает и выполняет команды из указанного файла в среде текущего командного интерпретатора и возвращает статус выхода последней выполненной команды из файла. Если имя_файла не содержит косой черты, файл ищется в каталогах, перечисленных в переменной PATH. Искомый файл не обязательно должен быть выполняемым. Если ни в одном из каталогов, перечисленных в PATH, файл с указанным именем не найден, он ищется в текущем каталоге. Если отключена опция встроенной команды , перечисленные в PATH каталоги не просматриваются. Если переданы аргументы, они становятся позиционными параметрами при выполнении файла. Иначе значения позиционных параметров не изменяются. Статусом выхода становится статус последней выполненной в сценарии команды (статус выхода равен 0, если ни одна команда не выполнялась), или 1, если файл не найден или не может быть прочитан.

alias [-p] [имя[=значение] ...]

Команда alias без аргументов или с опцией -p выдает список псевдонимов команд в виде alias имя=значение в стандартный выходной поток. Если переданы аргументы, каждое имя, для которого задано значение, становится псевдонимом. Если значение завершается пробелом, в следующем слове при подстановке будет выполняться замена псевдонима. Для каждого имени в списке аргументов без соответствующего значения выдается имя и значение соответствующего псевдонима. Команда alias возвращает истину, если только не задано имя, не являющееся именем псевдонима.

bg [задание]

Возобновляет выполнение указанного задания в фоновом режиме, как если бы оно было запущено с конструкцией &. Если задание не указано, в фоновый режим переводится текущее задание командного интерпретатора. Команда bg задание возвращает 0, если только управление заданиями не отключено или, при включенном управлении заданиями, соответствующее задание не найдено или запускалось при отключенном управлении заданиями.


bind [-m keymap] [-lpsvPSV]

bind [-m keymap] [-q функция] [-u функция] [-r keyseq]



bind [-m keymap] -f имя_файла

bind [-m keymap] keyseq:имя_функции


Выдает текущие привязки клавиш и функций библиотеки readline или привязывает комбинацию клавиш к функции или макросу readline. При этом поддерживается такой же синтаксис привязки, как и в файле .inputrc, но каждая привязка должна передаваться как отдельный аргумент; т.е. '"\C-x\C-r": re-read-init-file'.

Опции, если они переданы, имеют следующие значения:

-m keymap

Использовать набор привязок для последующих привязок. Допускаются имена привязок emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-command и vi-insert. vi эквивалентно vi-command; emacs эквивалентно emacs-standard.

-l

Список имен всех функций readline.

-p

Выдает имена функций и привязки readline так, чтобы их можно было прочитать повторно.

-P

Выдает текущие имена функций и привязки readline.

-v

Выдает имена и значения переменных readline так, чтобы их можно было прочитать повторно.

-V

Выдает имена и значения текущих переменных readline.

-s

Выдает комбинации клавиш readline, привязанные к макросам, и выдаваемые при их нажатии строки так, чтобы их можно было прочитать повторно.

-S

Выдает комбинации клавиш readline, привязанные к макросам, и выдаваемые при их нажатии строки

-f имя_файла

Читать привязки клавиш из указанного файла.

-q функция

Выдает комбинации клавиш, привязанные к указанной функции.

-u функция

Снять все привязки комбинаций клавиш к указанной функции.

-r keyseq

Удалить привязку к указанной комбинации клавиш keyseq.

Команда возвращает значение 0, кроме случаев, когда передана нераспознанная опция или произошла ошибка.

break [n]

Выход из цикла , , или . Если значение n указано, выход из n уровней циклов. n должно быть больше 1. Если значение n превышает количество вложенных циклов, происходит выход из всех циклов. Команда возвращает значение 0, если только не выполнена вне цикла.

builtin встроенная_команда [аргументы]



Выполняет указанную встроенную_команду интерпретатора, передает ей аргументы и возвращает ее статус выхода. Это полезно при определении функции, имя которой совпадает с именем встроенной команды интерпретатора так, чтобы можно использовать вызов встроенной команды в функции. Обычно так переопределяется встроенная команда . Если указанная команда не является встроенной командой интерпретатора, возвращается статус 1.

cd [-LP] [каталог]

Делает указанный каталог текущим. Стандартный каталог хранится в переменной HOME. Пременная CDPATH определяет пути поиска каталогов, содержащих указанный каталог.

Альтернативные имена каталогов в значении CDPATH разделяются двоеточием (:). Пустое имя каталога в CDPATH соответствует текущему каталогу, т.е. ".". Если каталог начинается с косой черты (/), то значение переменной CDPATH не используется. Опция -P требует использовать физическую структуру каталогов вместо следования по символьным связям (см. также опцию -P встроенной команды ); опция -L требует следовать по символьным связям. Аргумент - эквивалентен $OLDPWD. При успешной смене текущего каталога возвращается значение 0, в противном случае - 1.

command [-pVv] команда [аргумент ...]

Выполняет команду с аргументами, не выполняя обычный поиск функций командного интерпретатора. Выполняются только встроенные команды или команды, которые находятся в указанных в переменной PATH каталогах. Если задана опция -p, поиск команды выполняется по стандартному значению переменной PATH, гарантирующему, что будут найдены все стандартные утилиты. Если указана опция -V или -v, выдается описание команды. Опция -v выдает одно слово - имя команды или имя файла, представляющего команду; опция -V дает немного более детальное описание. Если указана опция -V или -v, статус выхода будет 0, если команда найдена, и 1 в противном случае. Если ни одна из этих опций не задана и возникла ошибка или команду не удалось найти, будет получен статус выхода 127. В противном случае статусом выхода встроенной команды command является статус выхода выполненной команды.



continue [n]

Перейти к следующей итерации цикла , , или . Если указано значение n, перейти к следующей итерации n-го внешнего цикла. Значение n должно быть больше 1. Если n превышает количество имеющихся внешних циклов, выполняется следующая итерация самого внешнего цикла (цикла "верхнего уровня"). Возвращается значение 0, если только команда не вызвана вне цикла

declare [-afFirx] [-p] [имя[=значение]]

typeset [-afFirx] [-p] [имя[=значение]]


Объявляет переменные и/или задает их атрибуты. Если имена не заданы, выдаются значения переменных. Опция -p будет выдавать атрибуты и значения переменных с указанными именами. Когда используется опция -p, остальные опции игнорируются. Опция -F запрещает выдачу определений функций; выдаются только имена и атрибуты функций. Опция -F автоматически устанавливает -f. Следующие опции можно использовать для выдачи переменных только с указанными атрибутами или для задания атрибутов переменных:

-a Каждое имя - переменная типа массив (см. раздел "" ранее).
-f Использовать только имена функций.
-i Переменная считается целочисленной; при присваивании переменной значения вычисляются арифметические выражения (см. раздел "").
-r Делает соответствующие переменные доступными только для чтения. Этим переменным нельзя присваивать значения в следующих операторах и их нельзя сбрасывать.
-x Помечает имена для экспортирования в среду для последующих команд.
При задании '+' вместо '-' атрибут сбрасывается, за исключением того, что опцию +a нельзя использовать для уничтожения массива. При использовании в функции, команда делает каждую опцию локальной, как и команда local. Возвращается значение 0, если только не указана недействительная опция, не делается попытка определить функцию с помощью конструкции "-f foo=bar", не делается попытка присвоить значение переменной, доступной только для чтения, не делается попытка присвоить значение массиву без использования конструкции присваивания для массива (см. раздел "" ранее), не используется имя несуществующей переменной командного интерпретатора, не выполняется попытка отменить статус только для чтения переменной, созданной как доступная только для чтения, не делается попытка отменить статус массива для переменной типа массив, и не предлагается выдать определение несуществующей функции с помощью опции -f.

dirs [-clpv] [+n] [-n]



Без опций эта команда выдает список текущих запомненных каталогов. По умолчанию каталоги выдаются в одну строку через пробел. Каталоги добавляются в список с помощью команды ; команда удаляет записи из списка.

+n Выдает n-ную запись слева списка, выдаваемого командой dirs при вызове без опций. Нумерация начинается с нуля.
-n Выдает n-ную запись справа списка, выдаваемого командой dirs при вызове без опций. Нумерация начинается с нуля.
-c Очищает стек каталогов, удаляя все записи.
-l Выдает более длинный листинг; в стандартном формате листинга для обозначения начального каталога используется тильда.
-p Выдает стек каталогов по одной записи в строку.
-v Выдает стек каталогов по одной записи в строку, выдавая индекс записи перед каждой записью.
Если не указана недопустимая опция, и индекс n не выходит за пределы стека, возвращается значение 0.

disown [-ar] [-h] [задание ...]

При вызове без опций каждое указанное задание удаляется из таблицы активных заданий. Если задана опция -h, задания не удаляются из таблицы, а помечаются так, что сигнал SIGHUP не посылается заданию при получении сигнала SIGHUP командным интерпретатором. Если задание не указано и не заданы опции -a и -r, используется текущее задание. Если задание не указано, опция -a означает удалить или пометить все задания; опция -r без аргумента задание ограничивает действие выполняющимися заданиями. Команда возвращает значение 0, если только не указано несуществующее задание.

echo [-neE] [аргумент ...]

Выдает аргументы через пробел, дополняя в конце символом новой строки. Статус возврата - всегда 0. Если указана опция -n, символ новой строки не выдается. Если указана опция -e, включается интерпретация следующих управляющих комбинаций символов с обратной косой. Опция -E отключает интерпретацию этих управляющих последовательностей даже в системах, где они интерпретируются по умолчанию. Команда echo не интерпретирует -- как признак завершения опций. Команда echo интерпретирует следующие управляющие последовательности:
\a сигнал (звонок)
\b забой
\c не выводить завершающие символы новой строки
\e управляющий символ
\f прогон страницы
\n новая строка
\r возврат каретки
\t горизонтальная табуляция
\v вертикальная табуляция
\\ обратная косая
\nnn символ, ASCII-код которого - восьмеричное значение nnn (от одной до трех цифр)
\xnnn символ, ASCII-код которого - шестнадцатеричное значение nnn (от одной до трех цифр)
<


enable [-adnps] [-f имя_файла] [имя ...]

Включает и отключает встроенные команды интерпретатора. Отключение встроенной команды позволяет выполнять без указания полного имени файл на диске, имя которого совпадает со встроенной командой, хотя обычно встроенные команды просматриваются первыми. Если используется опция -n, указанные по именам команды отключаются, в противном случае они влючаются. Например, чтобы использовать двоичную программу test, которая находится в одном из указанных в переменной PATH каталогов, вместо встроенной версии интерпретатора, выполните enable -n test. Опция -f требует загрузить новую встроенную команду с указанным именем из заданного разделяемого объектного файла в системах, поддерживающих динамическую загрузку. Опция -d удаляет встроенную команду, ранее загруженную с помощью опции -f. Если имена не заданы или если указана опция -p, выдается список встроенных команд интерпретатора. При отсутствии других опций и аргументов этот список содержит все включенные встроенные команды интерпретатора. Если опция -n не указана, выдаются только отключенные встроенные команды. Если указана опция -a, выдаваемый список включает все встроенные команды с признаком включена или отключена. Если указана опция -s, выдаются только встроенные команды, предполагаемые стандартом POSIX. Возвращается значение 0, если только имя являеся именем встроенной команды интерпретатора и не возникла проблема при загрузке новой встроенной команды из разделямого объектного файла.

eval [аргумент ...]

Аргументы читаются и соединяются в единую команду. Эта команда затем читается и выполняется командным интерпретатором, а ее статус выхода возвращается в качестве значения команды eval. Если аргументов нет или все аргументы пустые, команда eval возвращает 0.

exec [-cl] [-a имя] [команда [аргументы]]

Если указана команда, она заменяет командный интерпретатор. При этом новый процесс не создается. Аргументы становятся аргументами команды. Если указана опция -l, командный интерпретатор помещает дефис в качестве нулевого аргумента, передаваемого команде. Именно так делает команда . Опция -c вызывает выполнение команды с пустой средой. Если указана опция -a, командный интерпретатор передает имя как нулевой аргумент выполняемой команде. Если команда не может быть выполнена по той или иной причине, неинтерактивный командный интерпретатор завершает работу, если только не включена опция интерпретатора , - в этом случае команда возвращает код ошибки. Интерактивный командный интерпретатор возвращает код ошибки если файл не может быть выполнен. Если команда не указана, любые перенаправления срабатывают в текущем командном интерпретаторе и статус выхода будет 0. Если при перенаправлении произошла ошибка, статус выхода будет 1.



exit [n]

Вызывает завершение работы командного интерпретатора со статусом n. Если значение n не указано, статусом выхода будет статус выхода последней выполненной команды. Перед заврешением работы интерпретатора срабатыват обработчик сигнала EXIT.

export [-fn] [имя[=слово]] ...

export -p


Указанные имена помечаются для автоматического экспортирования в среду следующих выполняемых команд. Если указана опция -f, экспортируются имена функций. Если имена не указаны или задана опция -p, выдается список всех имен, экспортированных данным командным интерпретатором. Опция -n вызывает удаление признака экспортирования с указанных переменных. Команда export возвращает сатутус выхода 0, если только не указана недопустимая опция, имя несуществующей переменной или в опции -f не указано имя, не являющееся именем функции.

fc [-e редактор] [-nlr] [первая] [последняя]

fc -s [pat=rep] [команда]


Исправить команду. Первая форма выбирает диапазон команд, от первой до последней, из списка истории выполнения. Первую и последнюю команду можно задавать строкой (найти последнюю команду, начинающуюся с соответствующей строки) или числом (индекс в списке истории, причем отрицательные значения используются как смещение от номера текущей команды). Если последняя не указана, при выдаче последней считается текущая команда (так что fc -l -10 выдает последних 10 команд), а для остальных опций предполагается, что последняя совпадает с первой. Если первая не указана, ею становится предыдущая команда при редактировании и -16 (шестнадцатая с конца списка истории) при выдаче.

Опция -n подавляет выдачу номеров команд. Опция -r изменяет порядок выдачи команд на противоположный. Если указана опция -l, команды выдаются в стандартный выходной поток. В противном случае вызывается указанный редактор, которому передается файл с соответствующими командами. Если редактор не задан, используется значение переменной FCEDIT или значение переменной EDITOR, если FCEDIT не установлена. Если не установлены обе переменные, используется редактор vi. По завершении редактирования, отредактированные команды выдаются и выполняются.



Вторая форма требует повторного выполнения команды после замены каждого вхождения pat на rep. Полезно задать псевдоним "r=fc -s", так что при наборе "r cc" будет выполнена последняя команда, начинавшаяся со строки "cc", а при вводе "r" будет повторно выполняться последняя команда.

Если используется первая форма, команда возвращает значение 0, если только не указана недопустимая опция или первая или последняя команда выходит за пределы номеров команд в списке истоии. Если указана опция -e, возвращается статус выхода последней выполненной команды или ошибка, произошедшая при работе с временным файлом команд. Если используется вторая форма, возвращается статус выхода повторно выполненной команды, если только команда не задает несуществующую строку в списке истории, - в этом случае команда fc возвращает 1.

fg [задание]

Возобновляет работу задания в приоритетном режиме и делает это задание текущим. Если задание не указано, используется текущее задание командного интерпретатора. Возвращается значение статуса выхода команды, переведенной в приоритетный режим, или 1 если управление заданиями отключено или, при включенном управлении заданиями, если указано несуществующее задание или задание, запущенное при отключенном управлении заданиями.

getopts строка_опций имя [аргументы]

Команда getopts используется процедурами командного интерпретатора для разбора позиционных параметров. Строка_опций содержит буквы опций, которые необходимо распознать; если после буквы указано двоеточие, предполагается, что у опции должен быть аргумент, отделяемый от нее пробельным символом. При каждом вызове команда getopts помещает в переменную интерпретатора с указанным именем очередную опцию, создавая переменную, если она еще не существует, а индекс следующего аргмента - в переменную OPTIND. OPTIND получает значение 1 при каждом вызове командного интерпретатора или сценария. Если опция должна иметь аргумент, команда getopts помещает этот аргумент в переменную OPTARG. Командный интерпретатор не сбрасывает значение OPTIND автоматически. Между вызовами команды getopts в том же командном интерпретаторе, если необходимо использовать новый набор параметров, надо сбрасывать это значение явно.



Когда все опции обработаны, команда getopts завершает работу со значением, большим нуля. OPTIND при этом содержит индекс первого аргумента, не являющегося опцией, а переменная имя получает значение ?.

Команда getopts обычно обрабатывает позиционные параметры, но если заданы аргументы, getopts разбирает их.

Команда getopts может сообщать об ошибках двумя способами. Если первый символ строки_опций - двоеточие, используется немногословное информирование об ошибках. При обычной работе выдаются диагностические сообщения, если обнаруживаются недопустимые опции или недостающие аргументы. Если переменная OPTERR имеет значение 0, сообщения об ошибках не выдаются, даже если первым символом строки_опций не является двоеточие.

Если обнаружена недопустимая опция, getopts помещает ? в переменную имя и, если не задано немногословное информирование, выдает сообщение об ошибке и сбрасывает переменную OPTARG. Если getopts работает в режиме немногословного информирования, символ опции помещается в переменную OPTARG и никакие диагностические сообщения не выдаются.

Если обязательный аргумент не обнаружен, и для getopts не задано немногословное информирование, переменная имя получает значение ?, переменная OPTARG сбрасывается, и выдается диагностическое сообщение. Если getopts работает в режиме немногословного информирования, переменная имя получает значение :, а в переменную OPTARG помещается символ опции.

Команда getopts возвращает 0, если опция, указанная или не указанная, обнаружена. Она возвращает ложь, если достигнут конец опций или произошла ошибка.

hash [-r] [-p имя_файла] [имя]

Для каждого имени определяется и запоминается полное имя команды путем поиска в каталогах, перечисленных в переменной $PATH. Если указана опция -p, поиск по каталогам не выполняется, и указанное имя файла используется как полное имя команды. Опция -r вызывает сброс всех запомненных имен. Если аргументы не заданы, выдается информация о запомненных командах. Статус выхода - истина, если только имя удалось найти и не указана недопустимая опция.



help [шаблон]

Выдает полезную информацию о встроенных командах. Если шаблон указан, команда help выдает детальную справочную информацию о всех командах, соответствующих шаблону; в противном случае, выдается справка по всем встроенным командам и управляющим структурам интерпретатора. Статус выхода - 0, если удалось найти команду, соответствующую шаблону.

history [-c] [n]

history -anrw [имя_файла]

history -p аргумент [аргумент ...]

history -s аргумент [аргумент ...]


Если опции не указаны, выдает список истории команд с номерами строк. Строки, для которых указана звездочка (*), были изменены. При указании аргумента n выдаются только последние n строк. Если указано имя_файла, список истории берется из этого файла; если файл не указан, используется значение переменной HISTFILE. Опции имеют следующие значения:

-a Добавлять "новые" строки истории (строки истории, введенные с начала текущего сеанса bash) в файл истории.
-n Читать строки истории, еще не прочитанные из файла истории, в текущий список истории команд. Речь идет о строках, добавленных в файл истории с начала текущего сеанса bash.
-r Читать содержимое файла истории и использовать его в качестве текущего списка истории выполнения команд.
-w Записывать текущий список истории команд в файл истории, переписывая его текущее содержимое.
-c Очистить список истории выполнения команд, удаляя все записи.
-p Выполнить подстановку из списка истории для последующих аргументов и выдать результат в стандартный выходной поток. Результат не запоминается в списке истории. Для отключения обычной подстановки из списка истории, необходимо маскировать (брать в кавычки) каждый аргумент.
-s Сохранить аргументы в списке истории как одну запись. Последняя команда в списке истории удаляется перед добавлением аргументов.
Возвращается значение 0, если не передана недопустимая опция или при попытке чтения или записи файла истории не произошла ошибка.

jobs [-lnprs] [ задание ... ]

jobs -x команда [ аргументы ... ]




Первое из списка активных заданий. Опции имеют следующие значения:

-l Помимо обычной информации выдает идентификаторы процессов.
-p Выдает только идентификаторы процессов-лидеров групп процессов, образующих задание.
-n Выдает информацию только о заданиях, состояние которых изменилось с момента последнего уведомления пользователя о состоянии заданий.
-r Выдает только выполняющиеся задания.
-s Выдает только остановленные задания.
Если указано задание, выдается информация только об этом задании. Статус выхода - 0, кроме случаев, когда указана недопустимая опция или идентификатор несуществующего задания.

Если указана опция -x, команда jobs заменяет любой идентификатор задания в команде или аргументах соответствующим идентификатором группы процессов, и выполняет команду, передавая ей аргументы и возвращая ее статус выхода.

kill [-s сигнал | -n номер_сигнала | -сигнал] [идентификатор_процесса | задание] ...

kill -l [сигнал | статус_выхода]


Посылает указанный по имени или номеру сигнал процессам с указанными идентификаторами или входящим в задание с указанным идентификатором. Сигнал задается либо по имени, например, SIGKILL, либо по номеру. Если сигнал задается по имени, имя может включать префикс SIG, а может и не включать. Если сигнал не задан явно, предполагается сигнал SIGTERM. При указании опции -l выдаются имена сигналов. Если при указании опции -l заданы аргументы, выдаются только имена сигналов, соответствующих аргументам, и возвращается статус 0. Аргумент статус_выхода опции -l - число, задающее либо номер сигнала, либо статус выхода процесса, прерванного этим сигналом. Команда kill

возвращает истину, если, по крайней мере, один сигнал был послан успешно, или ложь, если возникла ошибка или была указана недопустимая опция.

let аргумент [аргумент ...]

Каждый аргумент - арифметическое выражение, которое необходимо вычислить (см. раздел ""). Если последний аргумент имеет значение 0, команда let возвращает 1, в противном случае, она возвращает зачение 0.



local [имя[=значение] ...]

Для каждого аргумента создается локальная переменная с указанным именем, получающая соответствующее значение. Когда команда local используется в функции, она ограничивает область действия этой переменной соответствующей функцией и вызванными из нее функциями. При вызове без операндов команда local выдает список локальных переменных в стандартный выходной поток. Использование команды local вне функции - ошибка. Статус возврата - 0, если только команда local не использована вне функции или не передано недопустимое имя.

logout

Выход из начального командного интерпретатора.

popd [-n] [+n] [-n]

Удаляет записи из стека каталогов. При вызове без аргументов удаляет верхний каталог из стека и выполняет переход в новый верхний каталог. Аргументы имеют следующие значения:

+n Удаляет n-ную запись слева списка каталогов, начиная с нуля. Например: "popd +0" удаляет первый каталог, а "popd +1" - второй.
-n Удаляет n-ную запись справа списка каталогов, начиная с нуля. Например: "popd -0" удаляет последний каталог, а "popd -1" - предпоследний.
-n Подавляет обычное измнение текущего каталога при удалении каталогов из стека, так что изменяется только содержимое стека.
Если команда popd завершается успешно, выполняется также команда и возвращается статус 0. Команда popd возвращает ложь, если выявлена недопустимая опция, стек каталогов - пустой, указана несуществующая запись в стеке каталогов или не удалось перейти в соответствующий каталог.

printf формат [аргументы]

Выдает аргументы в соответствии с форматом в стандартный выходной поток. Формат - строка символов, содержащая три типа объектов: обычные символы, которые просто копируются в стандартный выходной поток, управляющие последовательности символов, преобразуемые и копируемые в стандартный выходной поток, и спецификации формата, каждая из которых вызывает выдачу последующего аргумента. Помимо стандартных форматов printf(1), спецификатор %b



вызывает замену управляющих последовательностей, начинающихся с обратной косой, а спецификатор %q требует выдать соответствующий аргумент в формате, который можно повторно использовать в качестве входных данных командного интерпретатора.

Формат при необходимости используется повторно, чтобы покрыть все аргументы. Если формат требует больше аргументов, чем передано, дополнительные спецификации формата раскрываются как если бы были переданы нулевые значения или пустые строки, соответственно.

pushd [-n] [каталог]

pushd [-n] [+n] [-n]


Добавляет каталог на вершину стека каталогов или прокручивает стек, делая новый верхний элемент стека текущим рабочим каталогом. При вызове без аргументов, меняет местами два верхних каталога и возвращает 0, если стек каталогов не пустой. Аргументы имеют следующие значения:

+n Прокручивает стек так, что n-ный каталог (при подсчете слева по списку каталогов, начиная с 0) становится вершиной.
-n Прокручивает стек так, что n-ный каталог (при подсчете справа по списку каталогов, начиная с 0) становится вершиной.
-n Эта опция подавляет обычный переход в каталог при добавлении каталогов в стек, так что действия выполняются только со стеком.
каталог Добавляет каталог на вершину стека каталогов, делая его текущим рабочим каталогом.
Если команда pushd выполнена успешно, выполняется также команда . Если используется первая форма, pushd возвращает 0 за исключением случая, когда не удалось перейти в каталог. При использовании второй формы pushd возвращает 0, если только стек каталогов не пустой, не указан несуществующий элемент стека и удалось перейти в новый текущий каталог.

pwd [-LP]

Выдает полное имя текущего каталога. Выдаваемое имя файла не содержит символьных связей, если указана опция -P или включена опция -o physical

встроенной команды . Если использована опция -L, выполняется проход по символьным связям. Статус выхода - 0, если не возникла ошибка при чтении имени текущего каталога или не передана недопустимая опция.

read [-er] [-a имя_массива] [-p приглашение] [имя ...]



Читает одну строку из стандартного входного потока и присваивает первое слово первому имени, второе слово - второму имени, и так далее, так что оставшиеся слова вместе с разделителями между ними присваиваются в качестве значения последнему имени. Если из входного потока прочитано меньше слов, чем указано имен, остальные имена получают пустые значения. Для разбиения строки на слова используются символы, указанные в значении переменной IFS. Символ обратной косой (\) можно использовать для литеральной интерпретации следующего прочитанного символа и для продолжения ввода на следующей строке. Опции имеют следующие значения:

-r Обратная косая не обрабатывается как символ маскировки. Она считается частью строки. В частности, для продолжения на следующей строке нельзя использовать пару обратная косая/новая строка.
-p Выдает приглашение, без завершающего перевода строки, перед чтением входного потока. Приглашение выдается только если входные данные идут с терминала.
-a Слова присваиваются последовательным элементам массива имя_массива, начиная с 0. Имя_массива сбрасывается перед присваиванием новых значений. Другие имена в аргументах игнорируются.
-e Если стандартный входной поток идет с терминала, для получения строки используется библиотека readline (см. раздел "" ранее).
Если имена не указаны, прочитанная строка присваивается переменной REPLY. Статус выхода - 0, если только не встретился символ конца файла.

readonly [-apf] [имя ...]

Указанные имена помечаются как доступные только для чтения; значения соответствующих переменных нельзя изменять в дальнейшем с помощью присваивания. Если указана опция -f, функции, соответствующие именам, тоже помечаются. Опция -a ограничивает действие только массивами. Если ни одно имя не указано или задана опция -p, выдается список имен, доступных только для чтения. Опция -p вызывает выдачу результатов в формате, который можно использовать как входной. Статус выхода - 0, если только не передана недопустимая опция, одно из имен не является именем переменной или опция -f не указана перед именем, не являющимся именем функции.



return [n]

Вызывает завершение работы функции с указанным статусом выхода n. Если n не указано, возвращается статус выхода последней команды, выполненной в теле функции. При использовании вне функции, но в ходе выполнения сценария командой . (), вызывает прекращение выполнения сценария и возврат либо значения n, либо статуса выхода последней команды сценария. При использовании вне функции и не при выполнении сценария командой ., возвращает 1.

set [--abefhkmnptuvxBCHP] [-o опция] [аргумент ...]

При вызове без опций выдает имя и значение всех переменных командного интерпретатора в виде, пригодном для повторного выполнения присваиваний. Результат отсортирован по именам в соответствии с текущей локалью. Если опции указаны, они устанавливают или сбрасывают атрибуты командного интерпретатора. Все оставшиеся после обработки опций аргументы присваиваются последовательно в качестве значений позиционным параметрам $1, $2,... $n. Опции имеют следующие значения:

-a Автоматически помечать изменяемые или создаваемые переменные как экспортируемые в среду для последующих команд.
-b Сообщать о состоянии прерванных фоновых заданий немедленно, а не перед выдачей следующего первичного приглашения. Эта опция действует только если включено управление заданиями.
-e Немедленно завершать работу, если простая команда (см. раздел "" ранее) завершает работу с ненулевым статусом выхода. Работа командного интерпретатора не завершается, если закончившаяся неудачно команда является частью цикла или , частью оператора , частью списка && или , или если к статусу выхода команды применяется отрицание с помощью оператора !.
-f Отключить подстановку имен файлов.
-h Запоминать местонахождение команд, найденное при выполнении. Эта опция включена по умолчанию.
-k Помещать в среду все аргументы в виде операторов присваивания, а не только предшествующие имени команды.
-m Режим мониторинга. Управление заданиями включено. Эта опция стандартно устанавливается для интерактивных командных интерпретаторов в системах, где управление заданиями поддерживается (см. раздел "" ранее). Фоновые процессы работают в отдельной группе процессов, и строка, содержащая их статус выхода, выдается при завершении их работы.
-n Читать команды, но не выполнять их. Эту опцию можно использовать для проверки наличия синтаксических ошибок в сценариях командного интерпретатора. Интерактивные командные интерпретаторы ее игнорируют.
-o имя_опции Имя_опции может иметь одно из следующих значений:
<


allexport То же, что и опция
braceexpand То же, что и опция
emacs Использовать интерфейс редактирования командной строки в стиле редактора emacs. Эта опция установлена по умолчанию в интерактивных командных интерпретаторах, если только они не запущены с опцией --noediting
errexit То же, что и опция
hashall То же, что и опция
histexpand То же, что и опция
history Включить поддержку истории выполнения команд, как описано ранее в разделе "". Эта опция установлена по умолчанию для интерактивных командных интерпретаторов.
ignoreeof Результат такой же, как и после выполнения команды IGNOREEOF=10 (см. раздел "" ранее)
keyword То же, что и опция
monitor То же, что и опция
noclobber То же, что и опция
noexec То же, что и опция
noglob То же, что и опция
notify То же, что и опция
nounset То же, что и опция
onecmd То же, что и опция
physical То же, что и опция
posix Изменяет поведение bash на соответствующее стандарту POSIX 1003.2, там, где оно отличается
privileged То же, что и опция
verbose То же, что и опция
vi Использовать интерфейс редактирования командной строки в стиле редактора vi.
xtrace То же, что и опция .
Если указана опция -o без имени_опции, выдаются значения текущих установленных опций. Если указана опция +o без имени_опции, в стандартный выходной поток выдается набор команд set, необходимый для воссоздания текущего набора опций.

-p Включить привилегированный режим. В этом режиме файлы $ENV и $BASH_ENV не обрабатываются, функции командного интерпертатора не наследуются из среды, а переменная среды SHELLOPTS игнорируется. Если командный интерпретатор запущен с эффективным идентификатором пользователя (группы), не совпадающим с реальным, а опция -p не задана, выполняются перечилсенные действия и эффективный идентификатор устанавливается равным реальному. Если опция -p задана при запуске, эффективный идентификатор не сбрасывается. Отключение данной опции приводит к установке эффективных идентификаторов пользователя и группы равными реальным.
-t Завершить после чтения и выполнения одной команды.
-u При подстановке значений параметров рассматривать не установленную переменную как ошибку. При попытке подстановки значения не существующей переменной командный интерпретатор выдает сообщение об ошибке и, если он - не интерактивный, завершает работу с ненулевым статусом выхода.
-v Выдавать строки команд по мере чтения.
-x После подстановок в каждой простой команде выдавать значение переменной PS4, а затем - команду с результатами подстановок в аргументах.
-B Выполнять подстановку квадратных скобок в командном интерпретаторе (см. раздел "" ранее). Эта опция установлена по умолчанию.
-C Если эта опция установлена, bash не переписывает существующий файл при перенаправлениях с помощью операторов >, >& и <>. Это поведение можно переопределить при создании выходных файлов, применяя оператор перенаправления |> вместо >.
-H Включить подстановку из списка истории с помощью метасимвола !. Эта опция по умолчанию установлена в интерактивных командных интерпретаторах.
-P Если эта опция установлена, командный интерпретатор не следует по символьным связям при выполнении команд типа cd, изменяющих текущий рабочий каталог. Вместо этого, он использует физическую структуру каталогов. По умолчанию, bash следует по логической цепочке каталогов при выполнении команд, изменяющих текущий каталог.
-- Если после этой опции нет аргументов, сбрасываются значения позиционных параметров. В противном случае, позиционные параметры устанавливаются в соответствии с аргументами, даже если некоторые из них начинаются с дефиса (-).
-
Сигнализирует об окончании опций, так что все оставшиеся аргументы присваиваются позиционным параметрам. Опции -x и -v при этом отключаются. Если больше аргументов нет, позиционные параметры остаются без изменений. Опции по умолчанию отключены, если явно не сказано иначе. При указании + вместо - перед буквой опции, опция отключается. Опции также можно задавать как аргументы при вызове командного интерпретатора. Текущий набор опций представлен в виде значения параметра $-. Статус выхода - 0, если только не указана недопустимая опция.

shift [n]



Позиционные параметры n+1 ... переименовываются в $1 .... Параметры от $#-n+1 до $# сбрасываются. n должно быть неотрицательным целым числом, не превышающим $#. Если n равно 0, параметры не изменяются. Если n не указано, предполагается значение 1. Если n больше $#, поизиционные параметры не изменяются. Статус выхода - больше нуля, если n больше $# или отрицательное и 0 в противном случае.

shopt [-pqsu] [-o] [имя_опции ...]

Переключает значения переменных, управляющих не обязательным поведением командного интерпретатора. Если опции не указаны или задана опция -p, выдается список всех возможных опций, с указанием, установлена опция или нет. Опция -p вызывает выдачу результатов в формате, позволяющем использовать их в качестве входных команд. Остальные опции имеют следующие значения:

-s Включает (устанавливает) все указанные опции.
-u Отключает" (сбрасывает) все указанные опции.
-q Подавляет" выдачу стандартной информации (немногословный режим); статус выхода показывает, установлена опция или нет. Если после -q указано несколько имен_опций, статус выхода - 0, если все указанные опции включены и не 0 в противном случае.
-o Ограничивает" значения имен_опций только поддерживаемыми в опции встроенной команды .
Если опция -s или -u использована без аргументов, выдается информация только об установленных или неустановленных опциях, соответственно. Если не указано иначе, опции команды shopt по умолчанию отключены (сброшены).

Статус выхода при выдаче опций - 0, если все указанные опции включены и не 0 в противном случае. При установке или сбросе опций статус выхода - 0, если только не указана недопустимая опция командного интерпретатора.

Вот список допустимых опций команды shopt:

cdable_vars

Если эта опция установлена и переданный встроенной команде аргумент не является именем каталога, то предполагается, что это - имя переменной, значение которой - каталог для перехода.

cdspell Если эта опция установлена, небольшие ошибки в написании имен каталогов для команды cd будут исправляться. Речь идет о переставленных местами символах, пропущенном символе и одном лишнем символе. Если при исправлении найден подходящий вариант, выдается исправленное имя каталога и команда выполняется. Эта опция используется только интерактивными командными интерпретаторами.



checkhash

Если эта опция установлена, bash проверяет, что найденная в хэше команда существует, прежде чем пытаться ее выполнить. Если находящаяся в хэше команда больше не существует, выполняется обычный поиск по каталогам.

checkwinsize

Если эта опция установлена, bash проверяет размер окна после выполнения каждой команды и, при необходимости, обновляет значения переменных LINES и COLUMNS.

cmdhist

Если эта опция установлена, bash пытается сохранить все строки многострочной команды в одной записи списка истории. Это позволяет легко редактировать многострочные команды.

dotglob

Если эта опция установлена, bash включает в результаты подстановки имен файлов имена, начинающиеся с точки (.).

execfail

Если эта опция установлена, не интерактивный командный интерпретатор не будет завершать работу, если не сможет выполнить файл, указанный в качестве аргумента для встроенной команды . Интерактивный командный интерпретатор не завершает работу, если команда exec не срабатывает.

expand_aliases

Если эта опция установлена, псевдонимы заменяются так, как было описано ранее в разделе "". Эта опция включена по умолчанию в интерактивных командных интерпретаторах.

extglob

Если эта опция установлена, поддерживаются расширенные возможности сопоставления с образцом, описанные ранее в разделе "".

histappend

Если эта опция установлена, список истории добавляется в файл, имя которого является значением пременной HISTFILE, при завершении работы командного интерпретатора, а не переписывает файл.

histreedit

Если эта опция установлена и используется библиотека readline, пользователь получает возможность повторно редактировать команду при невозможности подстановки из списка истории.

histverify

Если эта опция установлена и используется библиотека readline, результаты подстановки из списка истории не передаются анализатору командного интерпретатора немедленно. Вместо этого, полученная в результате строка загружается в буфер редактирования readline для дальнейших изменений.

hostcomplete



Если эта опция установлена и используется библиотека readline, bash будет пытаться выполнить подстановку имен хостов после завершения слова, содержащего символ @, (см. подраздел "" в разделе "" ранее). Эта опция включена по умолчанию.

huponexit

Если эта опция установлена, bash будет посылать сигнал SIGHUP всем заданиям при завершении работы интерактивного начального командного интерпретатора.

interactive_comments

Если эта опция установлена, слово, начинающееся символом #, и все остальные символы в этой строке игнорируются интерактивным команжным интерпретатором (см. раздел "" ранее). Эта опция включена по умолчанию.

lithist

Если эта опция установлена, и установлена опция , многострочные команды, по возможности, сохраняются в списке истории со встроенными символами новой строки вместо точек с запятыми.

mailwarn

Если эта опция установлена и файл, проверяемый командным интерпретатором bash как почтовый ящик, читался с момента последней проверки, выдается сообщение "The mail in имя_файла has been read".

nocaseglob

Если эта опция установлена, bash при подстановке имен файлов выполняет сопоставление с образцом без учета регистра символов (см. раздел "" ранее).

nullglob

Если эта опция установлена, bash подставляет пустую строку вместо шаблонов, которым не соответствует ни один файл (см. раздел "" ранее), а не сам шаблон.

promptvars

Если эта опция установлена, в строках приглашения выполняется подстановка значений переменных и параметров после стандартных подстановок, описанных в разделе "" ранее. Эта опция установлена по умолчанию.

restricted_shell

Командный интерпретатор устанавливает эту опцию, если он запущен в ограниченном режиме (см. раздел " " ниже). Значение этой опции изменять нельзя. Она не сбрасывается при выполнении файлов начального запуска, что позволяет в этих файлах учесть, является ли командный интерпретатор ограниченным.

shift_verbose

Если эта опция установлена, встроенная команда выдает сообщение об ошибке, когда параметр сдвига превышает количество позиционных параметров.



sourcepath

Если эта опция установлена, встроенная команда (.) использует значение переменной PATH для поиска каталога, содержащего файл, переданный в качестве аргумента. Эта опция по умолчанию включена.

suspend [-f]

Приостанавливает работу текущего командного интерпретатора, пока он не получит сигнал SIGCONT. Опция -f отключает предупреждения, если эта команда выполняется в начальном командном интерпретаторе - безусловно приостановить работу. Статус выхода - 0, если только командный интерпретатор не является начальным, а опция -f - не указана, или если управление заданиями отключено.

test выражение

[ выражение ]


Возвращает статус 0 или 1, в зависимости от результатов проверки условного выражения. Каждый оператор или операнд должен быть отдельным аргументом. Выражения состоят из элементов, описанных ранее в разделе "".

Выражения можно комбинировать с помощью следующих операторов, перечисленных по убыванию приоритета.

! выражение

Истинно, если выражение ложно.

( выражение )

Возвращает значение выражения. Можно использовать для переопределения обычного приоритета выполнения операторов.

выражение1 -a выражение2

Истинно, если истинны оба выражения.

выражение1 -o выражение2

Истинно, если истинно выражение1 или выражение2.

Команды test и [ проверяют условные выражения с помощью набора правил, основанного на количестве аргументов.

0 аргументов

Выражение ложно.

1 аргумент

Выражение истинно только если аргумент - не пустой.

2 аргумента

Если первый аргумент - !, выражение истинно только если второй аргумент - пустой. Если первый аргумент - один из унарных условных операторов, перечисленных ранее в разделе "", выражение истинно, если унарный оператор возвращает истину. Если первый аргумент не является допустимым унарным условным оператором, выражение ложно.

3 аргумента

Если второй аргумент - один из бинарных условных операторов, перечисленных ранее в разделе "",

результатом проверки будет значение бинарного условного выражения, использующего первый и третий аргументы в качестве операндов. Если первый аргумент - !, результат - отрицание двухаргументной проверки второго и третьего аргументов. Если первый аргумент - только (, а третий - только ), результатом будет результат одноаргументной проверки второго аргумента. В противном случае, выражение ложно. В этом контексте операторы -a и -o считаются бинарными.



4 аргумента

Если первый аргумент - !, результат - отрицание трехаргументной проверки оставшихся аргументов. В противном случае, выражение разбирается и проверяется в соответствии с приоритетами по перечисленным выше правилам.

5 и более аргументов

Выражение разбирается и проверяется в соответствии с приоритетами по перечисленным выше правилам.

times

Выдает накопленные пользовательское и системное время работы для командного интерпретатора и запущенных из него процессов. Статус выхода - 0.

trap [-lp] [аргумент] [сигнал ...]

Команда аргумент читается и выполняется при получении командным интерпретатором указанных сигналов. Если аргумент не указан или задан как -, для всех указанных сигналов устанавливаются исходные обработчики (те, что были при запуске командного интерпретатора). Если аргумент - пустая строка, все указанные сигналы игнорируются командным интерпретатором и вызываемыми им командами. Если указана опция -p, выдаются команды trap, связанные с каждым из перечисленных сигналов. Если аргументов нет или указана только опция -p, команда trap выдает список команд (обработчиков), связанных с каждым из сигналов. Сигнал можно задавать как по имени, определенному в файле <signal.h>, так и по номеру. Если в качестве сигнала

указана конструкция EXIT (0), команда-аргумент выполняется при завершении работы командного интерпретатора. Если в качестве сигнала указано DEBUG, команда-аргумент выполняется после каждой простой команды (см. раздел "" ранее). Опция -l приводит к выдаче списка имен сигналов и соответствующих им номеров. Сигналы, игнорировавшиеся при входе в командный интерпретатор, нельзя перехватить или переустановить. Перехваченные сигналы сбрасываются в исходные значения в порожденных процессах при создании. Статус возврата - 1, если указан недопустимый сигнал; в противном случае, trap возвращает 0.

type [-atp] имя [имя ...]

При вызове без опций показывает, как имена будут интерпретироваться при использовании в качестве имени команды. Если указана опция -t, type выдает одну из строк alias, keyword, function, builtin или file, если имя, соответственно, представляет собой псевдоним, зарезервированное слово командного интерпретатора, функцию, встроенную команду или файл на диске. Если имя не найдено, ничего не выдается и возвращается статус выхода 1. Если указана опция -p, type вернет либо имя файла на диске, который будет выполняться при указании имени в качестве имени команды, либо ничего, если обращения к файлу не будет. Если команда хранится в хэше, опция -p приводит к выдаче значения из хэша, а не обязательно первого файла, выбираемого по перечисленным в PATH каталогам. Если использована опция -a, команда type выдает список всех каталогов, где есть выполняемый файл с соответствующим именем. В список включаются также псевдонимы и функции, если только не указана опция -p. К хэшу команд не обращаются, если указана опция -a. Команда type возвращает 0, если хоть один из аргументов найден, и 1 в противном случае.



ulimit [-SHacdflmnpstuv [ограничение]]

Обеспечивает управление ресурсами, доступными для командного интерпретатора и запущенных им процессов в системах, поддерживающих такое управление. Значение ограничения может быть числом единиц измерения ресурса или строкой unlimited. Опции -H и -S указывают, что для данного ресурса устанавливается жесткое или мягкое ограничение. Жесткое ограничение после установки превосходить нельзя; мягкое ограничение можно превосходить вплоть до значения соответствующего жесткого ограничения. Если опции -H и -S не указаны, устанавливаются и мягкое, и жесткое ограничение. Если ограничение не указано, выдается текущее значение мягкого ограничения на ресурс, если только не указана опция -H. Если указано несколько ресурсов, перед значением выдается название и единица измерения ресурса. Другие опции интерпретируются следующим образом:

-a Выдается информация о всех текущих ограничениях
-c Максимальный размер создаваемых файлов core
-d Максимальный размер сегмента данных процесса
-f Максимальный размер файлов, создаваемых командным интерпретатором
-l Максимальный размер сегмента, который может быть привязан к памяти
-m Максимальный размер резидентного набора
-n Максимальное количество открытых файловых дескрипторов (большинство систем не позволяет устанавливать это значение)
-p Размер программного канала в 512-байтовых блоках (его устанавливать нельзя)
-s Максимальный размер стека
-t Максимальное количество процессорного времени в секундах
-u Максимальное количество процессов для одного пользователя
-v Максимальный объем виртуальной памяти, доступный командному интерпретатору
Если ограничение указано, оно становится новым предельным значением для соответствующего ресурса (опция -a только выдает информацию). Если опции не заданы, предполагается опция -f. Значения представляются в единицах 1024 байта, за исключением опции -t, где значения - в секундах, -p, где значения - в 512-байтовых блоках, и опций -n и -u, для которых значения не масштабируются. Статус выхода - 0, если не указана недопустимая опция, в качестве ограничения не задано не числовое значение, отличное от unlimited, и при установке нового ограничения не произошла ошибка.

umask [-p] [-S] [маска]



Пользовательская маска создания файла устанавливается равной аргументу маска. Если маска начинается с цифры, она интерпретируется как восьмеричное число; иначе - как маска в символьном формате, аналогичном используемому в команде chmod(1). Если маска не указана или задана опция -S, выдается текущее значение маски. Опция -S

вызывает выдачу маски в символьном формате; по умолчанию выдается восьмеричное число. Если указана опция -p, а маска не задана, результат выдается в виде, который можно использовать во входной команде. Статус выхода - 0, если маска была успешно изменена или не указана, и 1 в противном случае.

unalias [-a] [имя ...]

Удаляет имена из списка определенных псевдонимов. Если указана опция -a, удаляются все определения. Возвращается значение 0, за исключением случаев, когда переданное имя не является псевдонимом.

unset [-fv] [имя ...]

Для каждого имени удаляет (сбрасывает) соответствующую переменную или функцию. Если опции не указаны или задана опция -v, удаляются только переменные. Переменные только для чтения удалять нельзя. Если указана опция -f, удаляются только определения соответствующих функций. Удаляемая переменная или функция удаляется из среды, передаваемой последующим командам. Если сбрасывается одна из переменных RANDOM, SECONDS, LINENO, HISTCMD или DIRSTACK, эти переменные теряют специальные свойства, даже если они в дальнейшем снова устанавливаются. Статус выхода - 0, за исключеним случаев, когда имя не существует или доступно только для чтения.

wait [n]

Ждет завершения указанного процесса и возвращает статус его завершения. n может быть идентификатором процесса или спецификацией задания; если указана спецификация задания, ждет завершения всех процессов в конвейере соответствующего задания. Если n не указано, ожидается завершение всех текущих активных порожденных процессов, и возвращается статус ноль. Если n задает идентификатор несуществующего процесса или задания, статус выхода - 127. В противном случае, статусом выхода является статус завершения последнего процесса или задания, завершение которого ждали.

                     


Содержание раздела