Spec-Zone.ru › Bash

Встроенный тип Set

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

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

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

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

-a

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

-b

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

-e

Выйти немедленно, если конвейер (см. Конвейеры), который может состоять из одной простой команды (см. Простые команды), списка (см. Списки команд) или составной команды (см. Составные команды), возвращает ненулевой статус. Оболочка не завершает работу, если команда, которая завершается ошибкой, является частью списка команд, непосредственно следующего за ключевым словом while или until, частью теста в операторе if, частью любой команды, выполненной в списке && или || за исключением команды, следующей за конечным ключевым словом && или ||, любой командой в конвейере, кроме последней, или если статус возврата команды инвертируется с помощью !. Если составная команда, отличная от подоболочки, возвращает ненулевой статус из-за ошибки команды, в то время как -e игнорировался, оболочка не завершается. Ловушка на ERR, если она установлена, выполняется перед завершением оболочки.

Этот параметр применяется к среде оболочки и каждой среде подоболочки (см. Среда выполнения команды) и может привести к завершению подоболочек до выполнения всех команд в подоболочке.

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

-f

Отключить расширение имён файлов (globbing).

-h

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

-k

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

-m

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

-n

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

-o option-name

Установить параметр, соответствующий option-name:

allexport

То же, что и -a.

braceexpand

То же, что и -B.

emacs

Использовать интерфейс редактирования строк emacs-стиля (см. Редактирование командной строки). Это также влияет на интерфейс редактирования, используемый для read -e.

errexit

То же, что и -e.

errtrace

То же, что и -E.

functrace

То же, что и -T.

hashall

То же, что и -h.

histexpand

То же, что и -H.

history

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

ignoreeof

Интерактивная оболочка не будет завершаться при чтении EOF.

keyword

То же, что и -k.

monitor

То же, что и -m.

noclobber

То же, что и -C.

noexec

То же, что и -n.

noglob

То же, что и -f.

nolog

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

notify

То же, что и -b.

nounset

То же, что и -u.

onecmd

То же, что и -t.

physical

То же, что и -P.

pipefail

Если установлен, значение конвейера — это значение последней (самой правой) команды, завершившейся с ненулевым статусом, или ноль, если все команды в конвейере завершились успешно. Этот параметр отключён по умолчанию.

posix

Изменение поведения Bash, где стандартное действие отличается от стандарта POSIX, чтобы соответствовать стандарту (см. Режим Bash POSIX). Это предназначено для того, чтобы Bash действовал как строгое надмножество этого стандарта.

privileged

То же, что и -p.

verbose

То же, что и -v.

vi

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

xtrace

То же, что и -x.

-p

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

-r

Включить ограниченный режим оболочки. Этот параметр не может быть сброшен после его установки.

-t

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

-u

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

-v

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

-x

Выводить отслеживание простых команд, for команд, case команд, select команд и арифметических for команд и их аргументов или связанных списков слов после их расширения и перед выполнением. Значение переменной PS4 расширяется и полученное значение выводится перед командой и её расширенными аргументами.

-B

Оболочка выполнит расширение фигурных скобок (см. Расширение фигурных скобок). Этот параметр включен по умолчанию.

-C

Предотвратить перенаправление вывода с помощью ‘>’, ‘>&’, и ‘<>’ от перезаписи существующих файлов.

-E

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

-H

Включить подстановку истории в стиле ‘!’ (см. Взаимодействие с историей). Этот параметр включен по умолчанию для интерактивных оболочек.

-P

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

Например, если /usr/sys — символическая ссылка на /usr/local/sys, то:

$ cd /usr/sys; echo $PWD
/usr/sys
$ cd ..; pwd
/usr

Если set -P включён, то:

$ cd /usr/sys; echo $PWD
/usr/local/sys
$ cd ..; pwd
/usr/local
-T

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

--

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

-

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

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

Остальные N аргументов являются позиционными параметрами и присваиваются, в порядке следования, $1, $2, … $N. Специальный параметр # устанавливается в N.

Статус возврата всегда равен нулю, если не задан недопустимый параметр.

Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API