Встроенные команды в bash

Если явно не указано иное, каждая встроенная команда, описанная в этом разделе, принимает опции начинающиеся с дефиса ‘‘, два дефиса ‘‘ обозначают окончание опций. Встроенные команды не принимают опции ‘:‘, ‘true‘, ‘false‘ и ‘test‘ и не рассматривают ‘‘ специально. Встроенные команды принимают ‘exit‘, ‘logout‘, ‘break‘, ‘continue‘, ‘let‘ и ‘shift‘ и аргументы процессов начинающиеся с ‘‘ не требуя ‘‘. Иные встроенные команды, которые принимают аргументы, но не указанные в качестве принимающих опций интерпретации аргументов, начиная с ‘‘ как недействительные опции и требуют ‘‘ для того чтобы предотвратить эти интерпретации.

: [arguments]

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

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

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

Читает и выполняет команды из имя-файла в текущем командном интерпретаторе и возвращает код выхода последней выполненной команды из имя-файла. Если имя файла не содержит косую черту, используются имена файлов в PATH, для того чтобы найти каталог в котором находится имя-файла. Поиск файлов в PATH необязательно должен быть исполняемым. Когда bash находится не в posix режиме, текущий каталог, если файл не найден в PATH. Если опция встроенной команды sourcepath включена, PATH не ищется. Если подаются какие-либо аргументы, они становятся позиционными параметрами при имени когда выполняется имя-файла. В ином случае позиционные параметры остаются неизменными. Статусом выхода является статус последней команды вышедшей в скрипте (0 если ни одна команда не выполняется) и false если имя-файла не найдено либо не может быть прочитан.

alias [-p] [name[=value] …]

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

bg [jobspec …]

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

bind [-m keymap] [-lpsvPSV]

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 readline-command

Отображение текущих ключей readline и функциональной привязки, привязки последовательности клавиш для функции readline или макроса readline, или устанавливает переменную readline. Каждый аргумент не являющейся опцией команды, как и в файле ‘.inputrc‘, но каждая привязка должна передаваться в качестве отдельного аргумента, например ‘«\C-x\C-r»: re-read-init-file‘.

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

-m keymap

Использовать keymap как таблицу ключей, которые будут затронув в последующих привязках. Приемлемые имена keymap, emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, vi-command, и vi-insert. vi является эквивалентом vi-command: emacs эквивалентен emacs-standard.

-l

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

-p

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

-P

Список текущих имён функций readline и привязки.

-s

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

-S

Выдаёт последовательность клавиш readline, связанные с макросами и выдаваемыми строками.

-v

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

-V

Выдаёт список текущих имён readline переменных и значений.

-f имя-файла

Читает комбинации клавиш из файла.

-q функция

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

-u функция

Отменяет привязку всех ключей, связанных с именем функции.

-r keyseq

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

-x keyseq:shell-command

Поэтому будет выполняется shell-command которая будет выполнятся при вводе keyseq. Когда выполняется shell-command, shell устанавливает переменную READLINE_LINE к содержимому строки буфера обмена readline, и переменную READLINE_POINT к текущему местоположению точки вставки. Если выполняющаяся команда изменяет значение READLINE_LINE или READLINE_POINT, эти новые значения будут отражены в состоянии редактирования.

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

break [n]

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

builtin shell-builtin [arguments]

Выполняет указанную команду shell, передавая ей аргументы, возвращает её код завершения. Это полезно при определении функции, чьё имя такое же как встроенная команда shell, сохранив функциональность встроенной команды внутри функции. Так обычно переопределяется встроенная команда cd. Если указанная команда не является встроенной командой shell возвращает статус выхода false.

caller [expr]

Возвращает контекст любой активной подпрограммы (функции shell или выполняющегося скрипта с ‘.‘ или встроенной командой source). Без expr, отображается номер строки и имя файла текущего вызова подпрограммы. Если подставляется целое неотрицательное число, как expr, вызов отображает номер строки, имя подпрограммы и исходный файл соответствующий этой позиции в текущем стеке исполняющихся вызовов. Эта дополнительная информация может быть использована для печати стека. Текущее значение кадра 0. Возврашается значение 0, если shell не выполняет вызов подпрограммы или expr не соответствует действительной позиции в стеке вызовов.

cd [-L|[-P [-e]]] [dir]

Изменить текущий каталог на dir. Переменная HOME является по умолчанию dir. Переменная CDPATH определяет путь поиска каталога, содержащего dir. Альтернативные имена каталогов в CDPATH разделены двоеточиями ‘:‘. Нулевое имя каталога в CDPATH такое же как в текущем каталоге, тоесть ‘.‘. Если dir начинается с косой черты ‘/‘, то CDPATH не используется. Опция -P говорит использовать физическую структуру каталогов, вместо того чтобы следовать символическим ссылкам (смотрите так же опцию -P к встроенной команде set): опция -L указывает следовать символическим ссылкам. Опция -e поставляется с -P, и текущий рабочий каталог не может успешно определится после успешного изменения каталогов, cd возвращается со статусом выхода 0. Аргумент ‘‘ эквивалентен $OLDPWD. Если используется непустое имя каталога из CDPATH, или если это первый аргумент, а изменение каталога прошло успешно, абсолютный путь новой рабочей директории записывается в стандартный ввод. Возвращаемое значение true если каталог был полностью изменен, в ином случае 1.

command [-pVv] command [arg …]

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

compgen [option] [word]

Генерация возможных совпадений завершений в word, в соответствии с параметрами, которые могут быть любой опцией принятой со встроенной командой complete, за исключением опций -p и -r и записью совпадений на стандартный вывод. Когда используются опции -F или -C, различные переменные shell, устанавливают программируемые объекты завершения, в то время как доступные не имеют полезных значений.

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

Возврашаемое значение true(верно) если подставляется недопустимая опция или совпадения не были сгенерированы.

complete [-abcdefgjksuv] [-o comp-option] [-DE] [-A action] [-G globpat] [-W wordlist] [-F function]

[-C command]

[-X filterpat] [-P prefix] [-S suffix] name [name …]

complete -pr [-DE] [name …]

Указывает какие аргументы каждого имени должны быть завершены. Если подается опция -p или если опция не подаётся, существующие технические завершения печатаются таким образом, что позволяет им быть повторно использованы в качестве входящих данных. Опция -r удаляет спецификацию завершения для каждого имени или если имена не подаются все спецификации завершения. Опция -D означает, что остальные опции и действия должны применяться к завершению командой «default»; тоесть завершает ту часть команды, для которых завершения ранее не было определено. Опция -E указывает что остальные опции и действия должны применяться к команде завершения «empty»; тоесть завершение пытается выполниться в пустой строке.

Попытки процесса применения этих характеристик завершения word, описаны в прошлой статье в разделе Программируемое дополнение.

Иные опции если они указаны имеют следующие значения. Аргументы опций -G, -W и -X (при необходимости -P и -S опции) должны быть указаны для защиты их от расширения до вызова встроенной команды complete.

-o comp-option

comp-option управляет некоторыми аспектами поведения compspec’s за пределами простой генерации завершений. comp-option может быть одним из:

bashdefault

Выполняет остальные bash завершения по умолчанию, если compspec не генерирует совпадения.

default

По умолчанию использует завершения имен файлов readline если compspec не генерирует совпадения.

dirnames

Выполняет завершение имен директорий, если compspec не генерирует совпадений.

filenames

Говорит readline что compspec генерирует имена файлов, поэтому он может выполнять любые имена конкретный обрабатываемых файлов (например добавление косой черты в именах каталогов, цитирования спецсимволов или подавления конечных пробелов). Предназначен для использования с функциями shell.

nospace

Говорит readline не применять пробелы (по умолчанию), слова завершаются в конце строки.

plusdirs

После любых совпадений определённых compspec генерируется, завершения имени каталога, и любые совпадения добавляются к результатам других действий.

-A action

Action(действие) может быть одним из следующих для генерации списка возможных завершений: alias(псевдонимов) Alias names(имен псевдонимов).Так же может быть указано как -a.

arrayvar

массив имен переменных.

binding

readline связанные ключевые имена.

builtin

Имена встроенных shell команд. Так же могут быть указаны как -b.

command

Имена команд. Так же могут быть указаны как -c.

directory

Имена директорий. Так же могут быть указаны как -d.

disabled

Имена отключённых встроенных команд shell.

enabled

Имена включенных встроенных команд shell.

export

Имена экспортируемых переменных shell. Может так же быть указано как -e.

file

Имена файлов. Может быть так же указано как -f.

function

Имена shell функций.

group

Имена групп. Может быть так же указано как -g.

helptopic

Записи помощи встроенной команды.

hostname

Имена хостов, берутся из файла указанного в переменной HOSTFILE.

job

Работающие имена, имена активных заданий. Так же могут быть указаны как -j.

keyword

Зарезервированные слова shell. Так же могут быть указаны как -k.

running

Имена выполняющихся заданий, если управление заданиями активно.

service

Имена служб. Так же могут указываться как -s.

setopt

Допустимые аргументы для опции -o встроенной команды set.

shopt

Имена shell опций что были приняты встроенной командой shopt.

signal

Имена сигналов.

stopped

Имена остановившихся работ, если управление заданиями активно.

user

Имена пользователей. Также могут быть указаны как -u.

variable

Имена всех переменных оболочки. Так же может быть указана как -v.

-C command

command выполняется в среде подоболочки, и её выход используется в качестве возможных завершений.

-F function

Функция, shell функции выполненной в текущей среде оболочки. Когда она завершается, возможные завершения извлекаются из значения переменной массива COMPREPLY.

-G globpat

Шаблон расширения путей имен globpat расширяется для генерации возможных завершений.

-P prefix

prefix добавляется в начале каждого возможного завершения после того как все другие параметры были применены.

-S suffix

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

-W wordlist

wordlist(список слов) разделен с помощью символов в специальной переменной IFS в качестве разделителей, и каждое полученное слово расширяется. Возможные завершения являются членами результирующего списка, которые соответствуют слову завершения.

-X filterpat

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

Возвращаемое значение верно если подставляется недопустимая опция, значение кроме -p или -r подставляется без имени аргумента, делается попытка удалить спецификацию завершение для имени, для которого спецификация не существует или произошла ошибка добавления спецификации завершения.

compopt [-o option] [-DE] [+o option] [name]

Изменение опций завершения для каждого имени в соответствии с опциями или для текущего выполняемого завершения, если имена не подставляется. Если опции не заданы, отображает опции завершения для каждого имени или текущего завершения. Возможные значения опций действительны для встроенной команды complete, описанной выше. Опция -D указывает что остальные опции должны применяться к завершению команды по умолчанию, тоесть завершение той части команды для которых завершение ранее не было определено. Опция -E указывает что остальные опции должны применяться к пустой строке команды завершения, тоесть завершения пустой строки.

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

continue [n]

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

declare [-aAfFgilrtux] [-p] [name[=value] …]

typeset [-aAfFgilrtux] [-p] [name[=value] …]

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

-a

Каждое имя является индексированной переменной массива.(Массивы я описывал ранее)

-A

Каждое имя является ассоциативной переменной массива.(Массивы я описывал ранее)

-f

Используются только имена функций.

-i

Переменная трактуется как целое; арифметические оценки выполняются(о Арифметических оценках я писал ранее), когда переменной присваивается значение.

-l

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

-r

Делает имена только для чтения. Эти имена не могут быть присвоены значения последующих операторов присваивания или unset.

-t

Предоставьте каждому имени атрибут трассировки. Трассируемые функции наследуют DEBUG и RETURN traps из вызывающейся оболочки. Трассировка атрибутов не имеет особого значения дял переменных.

-u

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

-x

Все имена экспортируются в последующие команды через окружающую среду.

Использование ‘+‘ вместо ‘‘ выключают атрибут вместо того чтобы, с +a не используется для уничтожения переменной массива и +r не удаляет только атрибут для чтения. При использовании в функции, делает каждое локальное имя, как с помощью команды local, если опция -g не подставляется, если имя переменной следует за =value(значение), значение переменной устанавливается равным value(значение). Возвращается значение 0, если встречается недопустимая опция, делается попытка определить функцию с помощью ‘-f foo=bar‘, делается попытка присвоить значение переменной только для чтения, попытка присвоить значение переменной массива без использования синтаксиса присваивания (Это было описано ранее в разделе Массивы), одно из имен является недопустимым именем переменной shell, делается попытка выключить статус переменной только для чтения, делается попытка выключить статус массива для переменной массива или попытка показать несуществующую функцию с -f.

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

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

+n

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

-n

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

-c

Очищает стек каталогов, удалив все записи.

-l

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

-p

Распечатывает стек каталогов, по одной записи в строке.

-v

Распечатывает стек каталогов по одной записи в строке, предваряя каждую запись её индексом в стеке.

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

disown [-ar] [-h] [jobspec …]

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

echo [-neE] [arg …]

Вывод аргументов, разделенных пробелами, с дальнейшим переходом на новую строку. Статус возврата всегда 0. Если указан -n завершающий перевод строки подавляется. Если задана опция -e, интерпретация символов следующих за обратной косой чертой включена. Опция -E отключает интерпритацию символов escape, даже где они интерпретируются по умолчанию. Shell опция xpg_echo может быть использована для динамического определения или not echo расширяет символы escape по умолчанию. Echo не интерпретирует ‘‘ означающий окончание опций. Echo интерпретирует следующие управляющие последовательности:

\a

Оповещение(звонок)

\b

бекспейс

\c

Подавить дальнейший выход

\e

\E

Символ escape

\f

Прогон страницы

\n

Новая строка

\r

Возврат каретки

\t

Горизонтальная табуляция

\v

Вертикальная табуляция

\\

Обратная косая черта.

\0nnn

Восьмибитный символ, значение которого восьмеричное значение nnn (от нуля до трех восьмеричных цифр)

\xHH

Восьмибитный символ, значение которого шестнадцатеричное значение HH (одна или две шестнадцатеричные цифры)

\uHHHH

Unicode (ISO/IEC 10646) символы, значение которых шестнадцатеричное значение HHHH (от одного до четырех шестнадцатеричных символов)

\UHHHHHHHH

Unicode (ISO/IEC 10646) символы, значение которых шестнадцатеричное значение HHHHHHHH (от одного до восьми шестнадцатеричных символов)

enable [-a] [-dnps] [-f filename] [name …]

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

eval [arg …]

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

exec [-cl] [-a name] [command [arguments]]

Если commamd задана, она заменяет shell. Новые процессы не создаются. Arguments становятся аргументами command. Если подставляется опция -l, командный интерпретатор помещает тире в начале нулевого аргумента переданного команде. Так делает команда login(1). Опция -c задает выполнение команды в пустой среде. Если подставляется -a, shell приводит имя в качестве нулевого аргумента выполненной команды. Если команда не может быть выполнена по какой-либо причине, неинтерактивный командный интерпретатор завершает работу, если только не включена опция интерпретатора execfail, в этом случае он возвращает ошибку. Интерактивная оболочка возвращает ошибку, если файл не может быть выполнен. Если команда не указана, любые перенаправления вступившие в силу в текущей оболочке возвращают статус 0. Если есть ошибка перенаправления, возвращается статус 1.

exit [n]

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

export [-fn] [name[=word]] …

export -p

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

fc [-e ename] [-lnr] [first] [last]

fc -s [pat=rep] [cmd]

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

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

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

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

fg [jobspec]

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

getopts optstring name [args]

getopts используется shell процедурами для разбора позиционных параметров. Строка опций(optstreng) содержит символы опций которые необходимо распознать; если после символа указано двоеточие, предполагается, что у опции должен быть аргумент, отделяемый от нее пробельным символом. Двоеточия и знаки вопроса не могут быть использованы в качестве символов опций. При каждом вызове команды getopts помещает следующую опцию в переменную командного интерпретатора с указанным именем очередной опции, создавая переменную, если она еще не существует, а индекс следующего аргумента в переменную OPTIND. OPTIND получает значение 1, каждый раз при вызове командного интерпретатора или сценария оболочки. Когда опции требуется аргумент, getopts помещает аргумент в переменную OPTARG. Shell не сбрасывает значение OPTIND автоматически, оно должно быть сброшено вручную, между несколькими вызовами getopts в пределах того же вызова оболочки, если необходимо использовать новый набор параметров.

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

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

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

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

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

Getopts возвращает true, если опция указана или не указана, обнаружена. Возвращает false если встречается конец опций или происходит ошибка.

hash [-lr] [-p filename] [-dt] [name]

Каждый раз когда вызывается hash, полный путь к имени команды определяется путем поиска в каталогах в $PATH и памяти. Любые ранее вспомненные пути имен отбрасываются. Если подставляется опция -p, поиск пути не выполняется и filename используется в качестве полного имени файла команды. Опция -r заставляет shell, забыть все сохраненные местоположения. Опция -d заставляет shell забыть расположение каждого имени. Если подставляется опция -t, печатается полный путь к каждому соответствующему имени. Если несколько имён аргументов подставляются с -t, name печатается перед хешированным полным путём. Опция -l заставляет выдавать результаты в формате, который может быть использован повторно в качестве входных данных. Если аргументы не указаны или если подставляется только -l, печатается информация о запомненных командах. Статус возврата true, если только имя не найдено или подставляется неправильная опция.

help [-dms] [pattern]

Отображает полезную информацию о встроенных командах. Если шаблон указан, help дает подробную информацию о всех командах совпадающих с шаблоном в ином случае help для всех встроенных команд и печати управления shell структур.

-d

Отображает краткое описание каждого шаблона.

-m

Отображает описание каждого шаблона в формате как у страницы руководства.

-s

Отображает только краткий обзор использования для каждого шаблона.

Статус выхода равен 0, если команда не соответствует шаблону.

history [n]

history -c

history -d offset

history -anrw [filename]

history -p arg [arg …]

history -s arg [arg …]

Если опции не заданы, показывает список команды истории с номерами строк. Линии перечисленные с ‘*‘ были изменены. Аргумент ‘n‘ перечисляет только последние ‘n‘ линий. Если установлена переменная HISTTIMEFORMAT и не является пустой, она используется в качестве строки форматирования strftime(3) для отображения метки времени ассоциированные с отображающейся записью истории. Не печатаются пустоты между отформатированной меткой времени и линией истории. Если подставляется имя файла, он используется в качестве имени файла истории, а если нет, то используется значение HISTFILE. Опции если они имеются, имеют следующие значения:

-c

Очистка списка истории, удалив все записи.

-d offset

Удалить запись журнала в положении смещения.

-a

Добавьте к «new» строки истории(строки истории входят с начала текущей сессии bash) к файлу истории.

-n

Читает строки истории еще не считанные из файла истории в текущий список истории. Это строки, присоединенные к файлу истории с начала текущей сессии bash.

-r

Читает содержимое файла истории и использует из в качестве текущей истории.

-w

Записывает текущую историю в файл истории, переписав содержимое файла хронологии.

-p

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

-s

Сохраняет аргументы в списке истории как одну запись. Последняя команда в списке журнала удаляется до добавления аргументов.

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

jobs [-lnprs] [ jobspec … ]

jobs -x command [ args … ]

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

-l

Список идентификаторов процессов в дополнение к обычной информации.

-n

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

-p

Перечисляет список только идентификаторов процесса, заданий лидирующей группы процесса.

-r

Выдается только выполняющиеся задания.

-s

Выдаются только остановленные работы.

Если дается jobspec, выход ограничивается информацией о этой работе. Статус выхода равен 0, если встречается недопустимая опция или подставляется недопустимый jobspec.

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

kill [-s sigspec | -n signum | -sigspec] [pid | jobspec] …

kill -l [sigspec | exit_status]

Посылает сигнал с именем sigspec или signum к процессам, именам pid или jobspec. sigspec это имя сигнала нечувствительного к регистру такое как SIGKILL (с префиксом SIG или без) или номером сигнала; signum является номером сигнала. Если sigspec отсутствует, предполагается SIGTERM. Аргумент -l приводит список имен сигналов. Если подставляются какие-либо аргументы когда дается -l, имена сигналов соответствующих аргументам в списке и возвращает статус 0. Статус выхода аргумента -l, число указывает либо номер сигнала или статус выхода процесса, прерванного сигналом. Уничтожает возврашаемое true, если по крайней мере один сигнал был успешно отправлен, или false если произошла ошибка или недопустимая опция.

let arg [arg …]

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

local [option] [name[=value] …]

Для каждого аргумента, переменная local с именем name создает и присваивает value(значение). Опция может быть любой из принятых объявленных опций. При местном использовании внутри функции, она вызывает имя переменной, чтобы иметь выдимый контекст ограниченный этой функцией и порожденными ей. При отсутствии операндов, local пишет список локальных переменных в стандартный вывод. При использовании local вне функции происходит ошибка. Статус выхода равен 0, если local не используется вне функции, подставляется недопустимое имя, или вызывается только для чтения переменной.

logout

Выход из shell оболочки.

mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]

readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]

Читаются строки из стандартного ввода в индексированном массиве, переменной массива, или файла дескриптора fd если подставляется опция -u. Переменная MAPFILE, по умолчанию для массивов. Опции, если имеются, имеют следующие значения:

-n

Копируют большое количество строк. Если количество имеет значение 0, все строки будут скопированы.

-O

Начинает присвоение массива с индексом оригинала. Индекс по умолчанию 0.

-s

Отменяет первый прочитанный подсчёт строк.

-t

Удаляет завершающий символ новой строки из каждой прочитанной строки.

-u

Чтение строк из дескриптора файла fd вместо стандартного ввода.

-C

Вызывает callback каждый раз при чтении строк quantum. Опция -c указывает quantum.

-c

Указывает количество прочитанных строк между каждым вызовом для callback.

Если -C указана без -c, значение quantum по умолчанию 5000. Когда оценивается callback, он подставляет индекс следующего элемента массива, который будет назначен и строку которая будет присвоена этому элементу в качестве дополнительных аргументов. callback оценивается после чтения строки, но до того как присваивается элемент массива.

Если не поставляется с явным оригиналом, mapfile очищает массив перед его назначением.

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

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

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

-n

Подавляет нормальное изменение каталога при удалении каталога из стека, так что только изменяется только содержимое стека.

+n

Удаляет n-ую запись из левой части стека каталогов, начиная с нуля. Например: ‘popd +0‘ удаляет первый каталог, ‘popd +0‘ второй.

-n

Удаляет n-ую запись из правой части стека каталогов, начиная с нуля. Например: ‘popd +0‘ удаляет последний каталог, ‘popd +0‘ рядом с последним.

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

printf [-v var] format [arguments]

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

%b

заставляет printf расширить обратный слеш управляющей последовательности в соответствующий аргумент (кроме того что \c завершает выход, обратная косая черта в \’, , и \? не удаляются и восьмеричные экранируются начиная с \0 может содержать до четырех цифр.

%q

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

%(datefmt)T

вызывает printf для вывода даты и времени строки в результате использования datefmt в виде строки формата для strftime(3). Соответствующий аргумент является целым числом, представляет число секунд с начала времени. Могут быть использованы два специальных значения аргументов: -1 представляет текущее время, и -2 представляет время вызова shell.

Аргументы нестроковых спецификаторов формата рассматриваются как C констант, кроме того что ведущий плюс или минус разрешен, а если лидирующий символ является одиночной или двойной кавычкой, значение является ASCII следующих символов.

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

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

pushd [-n] [dir]

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

-n

Отключает нормальное изменение каталога при добавлении каталогов в стек, так что действия выполняются только со стеком.

+n

Поворачивает стек так, что n-ый каталог (считая от левой части списка каталогов, начиная с нуля) становится вершиной.

-n

Поворачивает стек так, что n-ый каталог (считая от правой части списка каталогов, начиная с нуля) становится вершиной.

dir

Добавляет каталог в вершину стека каталогов, делая его текущим рабочим каталогом.

Если команда pushd успешная, выполняется команда dirs. Если используется первая форма, pushd возвращает 0, если переход в директорию не удаётся. Во второй форме pushd возвращает 0, если стек каталогов не пустой, не существует указанный элемент стека каталогов или удается изменение каталога в указанный новый каталог.

pwd [-LP]

Печатает абсолютный путь текущего рабочего каталога. Имя печатаемых путей, не содержит символические ссылки, если подставляется опция -P или физическая опция —o ко встроенной команде set включена. Если используется опция -L, печатаемый путь может содержать символические ссылки. Статус выхода равен 0, если не возникает ошибка при чтении имени текущего каталога или подставляется недопустимый параметр.

read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name …]

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

-a aname

Словам присваиваются последовательные индексы массива переменных aname, начиная с 0. aname не установлена до того как присваиваются новые значения. Другие имена аргументов игнорируются.

-d delim

Первый символ delim используется для завершения строки ввода, а не новой строки.

-e

Если используется стандартный ввод из терминала, readline используется для получения строки. Readline использует текущие настройки редактирования.

-i text

Если redline используется для чтения строки в настоящее время, текст размещается в буфер редактирования до начала редактирования.

-n nchars

Чтение возвращается после прочтения символов nchars, не дожидаясь полной строки ввода, но учитывая разделитель, если меньшая часть символов nchars читаются до разделителя.

-N nchars

Чтение возвращается после прочтения именно символов nchars, не дожидаясь полной строки ввода, если EOF не встречается или читается на вывод. Разделяющие символы встречающиеся во входящих данных не рассматривается особо и не вызывает возвращение чтения, пока символы nchars не читаются.

-p prompt

Показать запрос в стандартный поток ошибок, без завершающего символа новой строки, перед тем как читать любой вход. Командная строка отображается, только если вход идёт из терминала.

-r

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

-s

Бесшумный режим. Если ввод происходит с терминала, символы не повторяются.

-t timeout

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

-u fd

Читает ввод из файлового дескриптора fd.

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

readonly [-aAf] [-p] [name[=word] …]

Данные имена обозначены только для чтения; значения этих имен не может быть изменены последующими требованиями. Если подставляется опция -f, функции соответствующие именам(name) отмечаются. Опция -a ограничивает переменные индексированных массивов; опция -A ограничивает переменные дял ассоциативных массивов. Если подставляются обе опции, приоритет имеет -A. Если имена аргументов не заданы, или если подставляется опция -p, список всех readonly имен печатается. Другие опции могут быть использованы для ограничения на подмножество, множества доступных только для чтения имен. Опция -p вызывает выход, который будет отображаться в формате, который может быть повторно использован в качестве ввода. Если за именем переменной следует =word, значение переменной устанавливается word. Статус выхода равен 0, если встречается недопустимая опция, одно из имен(name) не является допустимым именем переменной shell или -f подставляется с именем которое не является функцией.

return [n]

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

set [—abefhkmnptuvxBCEHPT] [-o option-name] [arg …]

set [+abefhkmnptuvxBCEHPT] [+o option-name] [arg …]

Без опций, имя и значение каждой переменной shell отображается в формате, которые могут быть использованы повторно в качестве входящих данных для установки или сброса установленных переменных. Переменные для чтения не могут быть сброшены. В posix режиме только shell переменные перечисляются. Вывод сортируется в соответствии с текущей локалью. Когда задаются параметры, они устанавливают и отключают shell атрибуты. Любые аргументы, оставшиеся после обработки опций, рассматриваются в качестве значений позиционных параметров и выстраиваются порядком $1, $2, … $n. Опции, если они указаны, имеют следующие значения:

-a

Автоматически отметить переменные и функции, которые изменены или созданы для экспорта в среде последующих команд.

-b

Отчёт о состоянии прерванных фоновых заданий выдается немедленно, а не перед следующим первичным приглашением. Это эффективно только когда включено управление заданиями.

-e

Выходит немедленно, если перенаправление(которое может состоять из одной простой команды), команда подоболочки заключена в скобки, или одна из команд, выполняемых в рамках списка команд заключенных в фигурные скобки выходит с нулевым статусом. Shell не выходит, если команда не является частью списка команд, сразу после или до ключевого слова, частью текста следующей за зарезервированными словами if или elif, частью команды выполненной в && или || списке, кроме команды следующей в финале && или ||, любой команды в перенаправлении, но последнее или возвращаемое значение команды будет инвертированным вернувшимся значением с ‘!‘. Прерывание ERR если установлено, выполняется перед выходом shell. Эта опция применяется к среде shell и каждой подоболочки shell отдельно и может привести подоболочку к выходу, перед выполнением всех команд в подоболочке.

-f

Отключает расширение имен путей к файлам.

-h

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

-k

Все аргументы в форме операторов присваивания размещены в среде выполнения команды, а не только те которые предшествуют имени команды.

-m

Режим мониторинга. Управление заданиями включено. Эта опция включена по умолчанию для интерактивных оболочек на системах которые её поддерживают. Фоновые процессы выполняются в отдельной группе процессов и строка содержащая их статус выхода, печатается после завершения их разработки.

-n

Читать команды, но не выполнять их. Это может быть игнорировано для проверки скрипта на синтаксические ошибки. Это игнорируется интерактивными оболочками.

-o option-name

option-name может быть одним из слудующих:

allexport

То же, что -a.

braceexpand

То же, что -B.

emacs

Использовать emacs-style редактирования командной строки. Это включено по умолчанию, в интерактивной оболочке, если shell не запускается с опцией —noediting.Это так же влияет на интерфейс редактирования, используемый для чтения -e.

errexit

То же, что -e.

errtrace

То же, что -E.

functrace

То же, что -T.

hashall

То же, что -h.

histexpand

То же, что -H.

history

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

ignoreeof

Эффект как если бы shell команда ‘IGNOREEOF=10‘ была уничтожена.

keyword

То же, что -k.

monitor

То же, что -m.

noclobber

То же, что -C.

noexec

То же, что -n.

noglob

То же, что -f.

nolog

В настоящее время игнорируется.

notify

То же, что -b.

nounset

То же, что -u.

onecmd

То же, что -t.

physical

То же, что -P.

pipefail

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

posix

Изменение поведения bash, где операции по умолчанию отличаются от стандарта POSIX, для соответствия стандарту(posix режима).

privileged

То же, что -p.

verbose

То же, что -v

vi

Использование vi-style редактирования командной строки. Это также влияет на интерфейс редактирования используемый для чтения -e.

xtrace

То же, что -x.

If -o

Подставляется без каких-либо опций-имен (option-name), печатаются значения текущих настроек.

If +o

Подставляется без каких-либо опций-имен (option-name), серия набора команд воссоздания текущих параметров настройки отображается на стандартный вывод.

-p

Включить в привелигированном режиме. В этом режиме файлы $ENV и $BASH_ENV не обрабатываются, shell функции не наследуются из окружающей среды, и переменные SHELLOPTS, BASHOPTS, CDPATH, и GLOBIGNORE, если появляются в окружающей среде, игнорируются. Если shell запускается с эффективным пользователем id(группы) которого не совпадает с реальным пользователем id(группы) и опция -p не указана, эти действия предпринимаются и эффективный идентификатор пользователя устанавливается в режиме реального идентификатора пользователя. Если при запуске подставляется опция -p, эффективный идентификатор пользователя не сбрасывается. Выключение этой опции указывает эффективным пользовательским и групповым ids, быть установленными на реальных пользователей и группы ids.

-t

Выход после прочтения и выполнения одной команды.

-u

Относится к неустановленным переменным и другим специальным параметрам ‘@‘ и ‘*‘ как к ошибке при выполнении расширения параметра. Если происходит попытка расширения происходит на отключённой переменной или параметре, shell печатает сообщение об ошибке и если shell не является интерактивной, завершает работу с нулевым статусом.

-v

Выдаёт строки shell ввода по мере их считывания.

-x

После расширения каждой простой команды, для команды, случайной команды, выбора команды, или арифметического расширения для команды, отображается расширенное значение PS4, а затем с помощью команды и расширения её аргументов или связанный список слов.

-B

Shell выполняет фигурные скобки. Это по умолчанию.

-C

Если установлено, bash не перезаписывает существующий файл с операторами перенаправления ‘>‘, ‘>&‘, и ‘<>‘. Это может быть переопределено при создании входных файлов с помощью оператора перенаправления ‘>|‘ вместо ‘>‘.

-E

Если установлено, любой захват ERR наследуется функцией shell, подстановкой команд и командами выполненными в среде подоболочки. Захват ERR как правило, не наследуется в таких случаях.

-H

Включить ‘!‘ историю замены стиля. Эта опция включена по умолчанию, когда shell является интерактивной.

-P

Если установлено, shell не следует символическим ссылкам при выполнении команд, таких как ‘cd‘, изменяющих текущий рабочий каталог. Вместо этого он использует физическую структуру каталогов. По умолчанию, bash следует логической цепочке каталогов при выполнении команд, которые изменяют текущий каталог.

-T

Если установлено, любой захват DEBUG и RETURN возвращается наследуемой функцией оболочки, команды подстановки и команды выполненные в среде подоболочки. Захват DEBUG и RETURN, как правило, не наследуется в таких случаях.

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

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

Параметры по умолчанию отключены, если не указано иное. Использование ‘+‘, а не ‘‘ указывает что эти опции должны быть выключены. Эти параметры также могут быть указаны в качестве аргументов вызова оболочки. Текущий набор опций можно найти в ‘$-‘. Статус возврата всегда истинно, если встречается недопустимая опция.

shift [n]

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

shopt [-pqsu] [-o] [optname …]

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

-s

Включить (установить) все указанные опции.

-u

Отключить все указанные опции.

-q

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

-o

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

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

Статус возврата при перечислении опций равен нулю, если все имена опций включены, в ином случае не ноль. При установке или отключении опций, возвращается статут ноль, если указанные опции не являются допустимой shell опцией.

Список опций shopt:

autocd

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

cdable_vars

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

cdspell

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

checkhash

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

checkjobs

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

checkwinsize

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

cmdhist

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

compat31

Если установлено, bash меняет свое поведение, на то что в версии 3.1 по отношению к цитируемым аргументам ‘[[‘ условным командам ‘+~‘ оператора.

compat32

Если установлено, bash меняет своё поведение на то что в версии 3.2 по отношению к данной спецификации локали сравнение строк при использовании ‘[[‘ условных команд ‘< ‘ и ‘>‘ операторов. Bash версии до bash-4.1использует ASCII сортировки и strcmp(3); bash-4.1 и затем использовать параметры сортировки текущей локальной последовательности сортировки и strcoll(3).

compat40

Если установлено, bash меняет своё поведение на то что в версии 3.2 по отношению к данной спецификации локали сравнение строк при использовании ‘[[‘ условных команд ‘< ‘ и ‘>‘ операторов и эффект прерывания списка команд.

compat41

Если установлено, bash находясь в режиме posix, рассматривает одну кавычку в расширении параметров двойных кавычек, в качестве специального символа. Одиночные кавычки должны совпадать (тоесть их должно быть четное число) и символы между одиночными кавычками, считаются кавычками. Это поведение posix режима версии 4.1. По умолчанию поведение bash остается таким как в предыдущих версиях.

direxpand

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

dirspell

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

dotglob

Если установлено, bash включает имена начинающиеся с ‘.‘ в результатах расширения имён файлов.

execfail

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

expand_aliases

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

extdebug

Если установлено, поведение предназначенное для использования отладчиков включено:

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

  2. Если команда run захвата DEBUG, возвращает ненулевое значение, следующая команда пропускается и не выполняется.

  3. Если команда run захвата DEBUG возвращает значение 2, и shell выполняется в подпрограмме (shell функция или скрипт выполняет ‘.‘ или встроенные команды source), симулируется вызов возврата.

  4. BASH_ARGC и BASH_ARGV обновляется, как описано в описаниях ранее.

  5. Трассировка функции включена: замена команд, shell функций, и подоболочек вызывающихся с командой, наследуют, захват DEBUG и RETURN.

  6. Трассировка ошибок включена: замена команд, shell функций, и подоболочек вызывающихся с командой, наследуют, захват ERR.

extglob

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

extquote

Если установлено, $’string’ и $»string» кавычки производяется в пределе ${parameter} расширения заключенного в двойные кавычки. Эта опция включена по умолчанию.

failglob

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

force_fignore

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

globstar

Если установлено, то шаблон ‘**‘ используется в расширения имён путей файлов, контекст будет соответствовать всем файлам и нулю или более каталогов и подкаталогов. Если шаблон сопровождается ‘/‘, соответствуют только каталогам и подкаталогам.

gnu_errfmt

Если установлено, сообщения об shell ошибках записываются в стандартном формате сообщения ошибки GNU.

histappend

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

histreedit

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

histverify

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

hostcomplete

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

huponexit

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

interactive_comments

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

lastpipe

Если установлено, и управление заданиями не активно, shell запускает последнюю команду перенаправления не выполняющуюся в фоновом режиме в среде текущей оболочки.

lithist

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

login_shell

Shell устанавливает эту опцию, если он запущен в качестве регистрационной оболочки. Значение не может быть изменено.

mailwarn

Если установлено, и файл которым bash проверяет почту был доступен с момента как он был последний раз установлен, отображается сообщение «The mail in mailfile has been read».

no_empty_cmd_completion

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

nocaseglob

Если установлено, bash использует способ совпадения имён файлов без учёта регистра, при выполнении подстановки имён файлов.

nocasematch

Если установлено, bash соответствует шаблонам без учета регистра, когда выполняется соответствие при выполнении случайной или ‘[[‘ условной команды.

nullglob

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

progcomp

Если установлено, программируемые объекты завершения включены. Эта опция включена по умолчанию.

promptvars

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

restricted_shell

Наборы shell, эта опция, если shell запущен в ограниченном режиме. Значение не может быть изменено. Это не удаляется, когда выполняются файлы запуска, позволяя файлам запуска обнаружить есть или нет shell ограничения.

shift_verbose

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

sourcepath

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

xpg_echo

Если установлено, встроенная команда echo расширяет обратный слеш управляющей последовательности по умолчанию.

suspend [-f]

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

test expr

[ expr ]

Возвращает статус 0 или 1 в зависимости от оценки условного выражения expr. Каждый оператор и операнд должен быть отдельным аргументом. Выражения состоят из предварительных, описанных ранее в Условных выражениях. Test не принимает никаких опций, а также не принимает и игнорирует аргумент ‘‘ который означает конец опций.

Выражения могут быть объединены с помощью следующих операторов, перечисленных в порядке убывания приоритета. Оценка зависит от количества аргументов; описано ниже. Приоритет операторов используется, когда есть пять или больше аргументов.

! expr правда если expr ложно.

( expr )

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

expr1 -a expr2

Истинно если оба expr1 и expr2 истинны.

expr1 -o expr2

Истинно если либо expr1, либо expr2 истинно.

test и ‘[‘ оценивает условные выражения, используя набор правил в зависимости от количества аргументов.

0 аргументов

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

1 аргумент

Выражение истинно, если и только если аргумент не является нулевым.

2 аргумента

Если первый аргумент ‘!‘, выражение истинно, если и только если второй аргумент не равен нулю. Если первый аргумент является одним из унарных условных операторов, которые перечисленны выше в «Условных выражениях», выражение истинно, если унарный тест верен. Если первый аргумент не является допустимым унарным условным оператором, выражение ложно.

3 аргумента

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

4 аргумента

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

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

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

Когда используется с test или ‘[‘, операторы ‘< ‘ и ‘>‘ сортируются лексикографически, используя порядок ASCII.

times

Распечатать накопленное время пользователя и системное время для shell, и для процессов запускаемых из командной строки. Статус выхода равен 0.

trap [-lp] [[arg] sigspec …]

Команда ‘arg‘ должна рассматриваться и выполняться, когда shell получает сигнал(ы) sigspec. Если arg отсутствует (и есть один sigspec) или ‘‘, каждый указанный сигнал сброса в исходное расположение (значение что было на входе в shell). Если ‘arg‘ является пустой строкой, сигнал указанный каждой sigspec, игнорируется shell и вызывающимися командами. Если ‘arg‘ не присутствует и -p был подставлен, то отображается trap команда связанная с каждой sigspec. Если аргументы не подставляются или если только -p задано, trap печатает список команд, связанных с каждым сигналом. Опция -l указывает shell, распечатать список имён сигналов и их номера. Каждый sigspec либо имя сигнала определяется в , или номере сигнала. Названия сигналов не зависят от регистра и префикс SIG является обязательным.

Если sigspec является EXIT (0) команда arg выполняется при выходе из shell. Если sigspec является DEBUG, команда ‘arg‘ выполняется перед каждой простой командой, для команды, случайной команды, выбора команды, каждого арифметического сдвига команды и до первой выполненной команды в shell функции. Обращается к описанию опции extdebug, встроенной команды shopt, для деталей его влияния на DEBUG trap. Если sigspec является RETURN, команда ‘arg‘ выполняется каждый раз shell функцией или выполняющимся скриптом с ‘.‘ или исходным кодом встроенной команды заканчивающей выполнение.

Если sigspec является ERR, команда arg выполняется всякий раз когда простая команда имеет не нулевой статус выхода, при условии соблюдения следующих условий. ERR trap не выполняется, если не удаётся команда являющаяся частью списка команд следующая сразу после или до ключевого слова, частью теста в утверждении, частью команды выполненной в ‘&&‘ или ‘||‘ списке, или если возвращаемое значение команд будет инфертироваться через ‘!‘. Это те же самые условия, которым подчиняется опция errexit.

Сигналы игнорирующиеся при входе в shell не могут задерживаться или сбрасываться. Trapped сигналы, которые не были проигнорированы, сбрасываются в исходное значение в подоболочке или среде выполнения подоболочки, когда она создаётся. Статус возврата ложно, если любой sigspec является недействительным, в ином случае trap возвращает верно.

type [-aftpP] name [name …]

Если опции не заданы, указывает как каждое имя будет интерпретироваться, если использовать в качестве команды name. Если используется опция -t, type выводит строку которая является одним из псевдонимов(alias), ключевым словом, функцией, встроенной командой или файлом, если name является псевдонимом(alias), соответственно зарезервированным словом shell, функцией, встроенной командой или файлом на диске. Если name не найдено, то ничего не печатается, а статус выхода возвращается ложно. Если используется опция -p, type либо возвращает имя(name) файла на диске, которое будет выполняться, если имя(name) было указано в качестве имени команды, или ничего если ‘type -t name‘ не возвращает файл. Опция -P указывает PATH поиска для каждого имени(name), даже если ‘type -t name‘ не возвращает файл. Если команда хешируется, -p и -P печатает значение хеш, не обязательно файла который появляется первым в PATH. Если используется опция -a, type печатает все из мест, которые содержат исполняемое имя файла. Это включаем в себя псевдонимы(alias) и функции, если и только если не используется также опция -p. Таблица хешированных команд не опрашивается, при использовании -a. Опция -f, подавляет shell функцию lookup, как с помощью встроенной команды. Type возвращает истину, если все аргументы будут найдены, ложь если они не найдены.

ulimit [-HSTabcdefilmnpqrstuvx [limit]]

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

-a

Сообщаются все текущие лимиты.

-b

Максимальный размер буфера обмена соккета.

-c

Максимальный размер создаваемых core файлов.

-d

Максимальный размер сегмента данных процесса.

-e

Максимальный приоритет планирования («nice»)

-f

Максимальный размер файлов записанных shell и порождёнными ею.

-i

Максимальное число ожидающих сигналов.

-l

Максимальный размер, который может быть заблокирован в памяти.

-m

Максимальный размер резидентного набора(многие системы не соблюдают этот лимит).

-n

Максимальное число открытых файловых дескрипторов (большинство систем не позволяют установить это значение).

-p

Размер перенаправления в блоках по 512 байт (это не может быть установлено).

-q

Максимальное количество байт в очереди posix сообщений.

-r

Максимальный приоритет планирования реального времени.

-s

Максимальный размер стека.

-t

Максимальный объем процессорного времени в секундах.

-u

Максимальное количество процессов доступное для одного пользователя.

-v

Максимальный объём виртуальной памяти, доступной для shell, и в некоторых системах для порожденных shell процессов.

-x

Максимальное число блокировок файлов.

-T

Максимальное количество потоков.

Если задаётся limit, это является новым значением указанного ресурса (отображается толко опция -a). Если опции не заданы, то предполагается -f. Значение с шагом в 1024-байт, кроме -t, которое в секундах, -p, которое в единицах блоков по 512-байт и -T, -b, -n, и -u, которые являются немасштабированными значениями. Статус выхода равен 0, если опция неправильная или аргумент не указан, или произошла ошибка при установке нового лимита.

umask [-p] [-S] [mode]

Пользовательские маски для создания файлов установленных в mode. Если mode начинается с цифры, то он интерпретируется как восьмеричное число, в ином же случае он интерпретируется как маска в символьном режиме(mode), аналогичном тому что принят в chmod(1). Если режим(mode) не указан, то печатается текущее значение маски. Опция -S указывает маскам быть напечатанными в символической форме; выводом по умолчанию является восьмеричное число. Если подставляется опция -p, и режим(mode) не указан, вывод происходит в форме, которая может быть повторно использована в качестве входящих данных. Статус выхода равен 0, если режим(mode) был успешно изменен или если не был подставлен режим(mode) argument, в ином случае ложным.

unalias [-a] [name …]

Удаляет каждое имя из списка определенных псевдонимов(alias). Если подставляется -a, все определения псевдонимов удаляются. Возвращаемое значение верно, если предоставленное имя не определённый псевдоним.

unset [-fv] [name …]

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

wait [n …]

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *