Spec-Zone.ru › Bash

Встроенное команда Shopt

Эта встроенная команда позволяет изменить дополнительное поведение оболочки.

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

Переключает значения параметров, контролирующих необязательное поведение оболочки. Параметры могут быть теми, которые перечислены ниже, или, если используется опция -o, теми, которые доступны с опцией -o к команде set (см. Встроенная команда Set). Без опций или с опцией -p отображается список всех настраиваемых параметров с указанием, установлены они или нет; если заданы optname, вывод ограничен этими параметрами. Опция -p приводит к отображению вывода в форме, которая может быть повторно использована в качестве входных данных. Другие опции имеют следующие значения:

-s

Включает (устанавливает) каждый optname.

-u

Отключает (снимает установку) каждый optname.

-q

Подавляет обычный вывод; код возврата указывает, установлен или снят флаг optname. Если с -q задано несколько аргументов optname, код возврата равен нулю, если все optname включены; в противном случае – ненулевое значение.

-o

Ограничивает значения optname теми, которые определены для опции -o к встроенной команде set (см. Встроенная команда Set).

Если используется либо -s, либо -u без аргументов optname, то shopt отображает только те параметры, которые установлены или сняты с установки, соответственно.

За исключением случаев, когда указано иное, параметры shopt по умолчанию отключены.

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

Список shopt параметров:

assoc_expand_once

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

autocd

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

cdable_vars

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

cdspell

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

checkhash

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

checkjobs

Если установлено, Bash выводит статус всех приостановленных и запущенных задач перед выходом из интерактивной оболочки. Если какие-либо задачи выполняются, выход откладывается до тех пор, пока не будет предпринята вторая попытка выхода без промежуточной команды (см. Управление задачами). Оболочка всегда откладывает выход, если какие-либо задачи приостановлены.

checkwinsize

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

cmdhist

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

compat31
compat32
compat40
compat41
compat42
compat43
compat44

Они управляют аспектами режима совместимости оболочки (см. Режим совместимости оболочки).

complete_fullquote

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

direxpand

Если установлено, Bash заменяет имена каталогов результатами расширения слов при выполнении автодополнения имён файлов. Это изменяет содержимое буфера редактирования Readline.

dirspell

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

dotglob

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

execfail

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

expand_aliases

Если установлено, алиасы расширяются, как описано ниже в разделе «Алиасы» (Алиасы). Этот параметр включён по умолчанию для интерактивных оболочек.

extdebug

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

  1. Параметр -F встроенной команды declare (см. Встроенные команды Bash) отображает имя файла и номер строки, соответствующие каждому имени функции, переданному в качестве аргумента.
  2. Если команда, запущенная ловушкой DEBUG, возвращает ненулевое значение, следующая команда пропускается и не выполняется.
  3. Если команда, запущенная ловушкой DEBUG, возвращает значение 2, и оболочка выполняется в подпрограмме (функции оболочки или скрипте оболочки, выполненном встроенными командами . или source), оболочка моделирует вызов return.
  4. BASH_ARGC и BASH_ARGV обновляются, как описано в их описаниях (см. Переменные Bash).
  5. Включено отслеживание функций: подстановка команд, функции оболочки и подоболочки, вызываемые с ( command ), наследуют ловушки DEBUG и RETURN.
  6. Включено отслеживание ошибок: подстановка команд, функции оболочки и подоболочки, вызываемые с ( command ), наследуют ловушку ERR.
extglob

Если установлено, расширенные функции сопоставления шаблонов, описанные выше (см. Сопоставление шаблонов), включены.

extquote

Если установлено, цитирование $'string' и $"string" выполняется внутри расширений ${parameter} в двойных кавычках. Этот параметр включён по умолчанию.

failglob

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

force_fignore

Если установлено, суффиксы, указанные в переменной оболочки FIGNORE, заставляют слова игнорироваться при выполнении автодополнения слов, даже если проигнорированные слова являются единственными возможными дополнениями. См. Переменные Bash для описания FIGNORE. Этот параметр включён по умолчанию.

globasciiranges

Если установлено, выражения диапазонов, используемые в выражениях со скобками в сопоставлении шаблонов (см. Сопоставление шаблонов), ведут себя так, как если бы они находились в традиционной локали C при сравнении. То есть, порядковый порядок сортировки текущей локали не учитывается, поэтому ‘b’ не будет сортироваться между ‘A’ и ‘B’, а прописные и строчные ASCII символы будут сортироваться вместе.

globskipdots

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

globstar

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

gnu_errfmt

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

histappend

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

histreedit

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

histverify

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

hostcomplete

Если установлено, Bash попытается выполнить автодополнение имени хоста, когда слово, содержащее ‘@’, дополняется (см. Разрешение Readline на ввод за вас). Этот параметр включён по умолчанию.

huponexit

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

inherit_errexit

Если установлено, подстановка команд наследует значение параметра errexit, а не отключает его в среде подоболочки. Этот параметр включён при включении режима POSIX.

interactive_comments

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

lastpipe

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

lithist

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

localvar_inherit

Если установлено, локальные переменные наследуют значение и атрибуты переменной с тем же именем, которая существует в предыдущем объёме, прежде чем будет назначено какое-либо новое значение. Атрибут nameref не наследуется.

localvar_unset

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

login_shell

Оболочка устанавливает этот параметр, если она запущена как оболочка входа (см. Вызов Bash). Значение изменить нельзя.

mailwarn

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

no_empty_cmd_completion

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

nocaseglob
END_OF_DOCUMENT_MARKER

Если задано, Bash сопоставляет имена файлов в режиме игнорирования регистра при выполнении расширения имён файлов.

nocasematch

Если задано, Bash сопоставляет шаблоны в режиме игнорирования регистра при выполнении сопоставления при выполнении условных команд case или [[ (см. Условные конструкции), при выполнении расширения слов подстановки шаблонов или при фильтрации возможных дополнений в рамках программируемого дополнения.

noexpand_translation

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

nullglob

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

patsub_replacement

Если задано, Bash расширяет вхождения ‘&’ в строку замены подстановки шаблонов до текста, соответствующего шаблону, как описано выше (см. Расширение параметров оболочки). Этот параметр включён по умолчанию.

progcomp

Если задано, в Bash активированы средства программируемого дополнения (см. Программируемое дополнение). Этот параметр включён по умолчанию.

progcomp_alias

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

promptvars

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

restricted_shell

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

shift_verbose

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

sourcepath

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

varredir_close

Если задано, оболочка автоматически закрывает дескрипторы файлов, назначенные с помощью синтаксиса перенаправления {varname} (см. Перенаправления), вместо того, чтобы оставлять их открытыми после завершения команды.

xpg_echo

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

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-Shopt-Builtin.html

Spec-Zone.ru

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