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:

array_expand_once

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

assoc_expand_once

Устарел; синоним array_expand_once.

autocd

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

bash_source_fullpath

Если этот параметр установлен, имена файлов, добавляемые в переменную-массив BASH_SOURCE, преобразуются в полные пути (см. Переменные Bash).

cdable_vars

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

cdspell

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

checkhash

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

checkjobs

Если этот параметр установлен, перед выходом из интерактивной оболочки Bash выводит состояние всех остановленных и выполняющихся заданий. Если выполняются какие-либо задания, 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. Если параметр не установлен, Bash пытается сохранить исходный ввод пользователя.

dirspell

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

dotglob

Если этот параметр установлен, в результаты раскрытия имен файлов включаются имена файлов, начинающиеся с ‘.’. Имена файлов . и .. всегда должны указываться явно, даже если установлен 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

Если этот параметр установлен и используется Readline, 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 следит на предмет новой почты, Bash выводит сообщение "The mail in mailfile has been read".

no_empty_cmd_completion

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

nocaseglob

Если этот параметр установлен, Bash при раскрытии имен файлов не учитывает регистр символов в их именах.

nocasematch

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

noexpand_translation

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

nullglob

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

patsub_replacement

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

progcomp

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

progcomp_alias

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

promptvars

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

restricted_shell

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

shift_verbose

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

sourcepath

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

varredir_close

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

xpg_echo

Если этот параметр установлен, встроенная команда echo по умолчанию раскрывает последовательности с экранированием обратной косой чертой. Если также включен параметр оболочки posix (см. Встроенная команда Set), 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