shopt

Опции могут быть включены командой 'shopt' <tt>-s</tt> имя_опции. И выключены командой 'shopt' <tt>-u</tt> имя_опции. По-умолчанию опции выключены, если не указано обратное.

shopt — встроенная команда оболочки, управляет опциями. Изменяет значение внутренних конфигурационных параметров оболочки.

Синтаксис

shopt -pqsu -o имя_опции…

Описание

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

-o - Restrict the values of <OPTNAME…> to only those also known by the set builtin

-p - Печатает команду shopt с параметрами, которые выставят оболочку в такое положение, как сейчас.

-q - Тихий режим. Выстваляет код возврата в 0 если опция выставлена. Если опций было задано несколько то вернет 0 (TRUE) если все опции выставлены. Иначе вернет 1 (FALSE).

-s - Выставляет (разрешает) опцию или список опций.

-u - Отключает опцию или список. shopt с ключем -s или -u без имени опции выведет список опций которые только включены или выключены.

Код завершения

Когда идет установка опций - код возврата 0 (TRUE) если смена всех опций прошла успешно. Когда выдается список опций - код возврата 0 (TRUE) если все опции выставлены. Иначе 0 (FALSE)

Список опций оболочки bash

cdable_vars

Если опция установлена, то каждый (отдельный) аргумент команды cd, который не является каталогом, будет рассматриваться как имя переменной. Если путь с именем переменнной обнаружен, он будет выведен на экран, и будет выполнена команда cd. [username@localhost tmp]$ shopt -s cdable_vars [username@localhost tmp]$ cd HOME /home/username [username@localhost ~]$ shopt -u cdable_vars [username@localhost ~]$ cd HOME bash: cd: HOME: No such file or directory

cdspell

Незначительные ошибки в написании каталога команды cd будут исправляться: поменянные местами соседние символы, пропущенные, удвоенные символы. Если исправленный путь обнаружен - он будет выведен на экран, и будет выполнена команда cd. Работает только в интерактивном режиме.

checkhash

Если опция выставлена, то перед тем как выполнять команду - проверяется её наличие в hash-таблице. Если она там не найдена, тогда отрабатывается полноценный поиск по $PATH.

checkjobs

с версии 4.0 Если опция выставлена, то перед тем как выйти из оболочки, проверяет и докладывает о наличии работающих job-ов. См опцию huponexit.

checkwinsize

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

cmdhist

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

compat**

в зависимости от версии: compat31; compat32; compat40; compat41<br /> Опции работы новой версии bash в режиме совместимости более старшей версии.

dirspell

c версии 4.0<br /> Если опция выставлена - bash будет пытаться исправлять имена каталогов.

dotglob

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

execfail

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

expand_aliases

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

extdebug

Используется для debug

extglob

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

extquote

???

failglob

Если опция выставлена - при использовании glob-а, в который не попадает ни одного файла, будет выведено сообщение об ошибке. [username@localhost ~]$ mkdir /tmp/foo && cd /tmp/foo

[username@localhost foo]$ shopt -u failglob [username@localhost foo]$ ls * ls: cannot access *: No such file or directory

[username@localhost foo]$ shopt -s failglob [username@localhost foo]$ ls * bash: no match: *

При взведении опции до выполнения команды ls дело не дошло.

forceignore

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

globstar

ion, даже ес Если опция выставлена - glob - становится рекурсивным.

gnu_errfmt

Если опция выставлена - ошибки будут выдаваться в стандартном формате GNU.

histappend

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

histreedit

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

histverify

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

hostcomlete

Если опция выставлена - bash completion будет также дополнять имена хостов из /etc/hosts. Включено по-умолчанию.

huponexit

Если опция выставлена - при выходе из интерактивной оболочки bash отсылает job-ам сигнал hungup (SIGHUP). Защитить job-ы можно запуская их с honup.

lithost

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

login_shell

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

mailwarn

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

no_empty_cmd_completion

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

nocaseglob

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

nocasematch

я выставлена Если опция выставлена - bash будет регистронезависимым в вычислениях условий shopt и case.

nullglob

Если опция выставлена - bash разрешает glob-ы в которых нет ни одного файла. При этом есть связь с опцией failglob:<br /> failglob выставлена + nullglob выставлена = bash перехватит "неправильный" glob и не выполнит команду.<br /> failglob не выставлена + nullglob выставлена = команде будет передана строка нулевой длины.<br /> failglob выставлена + nullglob не выставлена = bash перехватит "неправильный" glob и не выполнит команду.<br /> failglob не выставлена + nullglob не выставлена = команде будет передан "неправильный" glob.<br />

progcomp

Если опция выставлена - разрешены программируемые команды дополнений (bash completion). По-умолчанию выставлено.

promptvars

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

restricted_shell

Если опция выставляется если оболочка работает в restricted shell -режиме. Выставляется автоматически, нельзя изменить.

shift_verbose

Если опция выставлена - встроенная команда shift будет выдавать сообщение об ошибке "позиционные параметры кончились".

sourcepath

Если опция выставлена - встроенные команды используют переменную PATH для поиска аргументов (в т.ч. exec). В интерактивном режиме выставлено по-умолчанию.

xpg_echo

Если опция выставлена - встроенная команда echo раскрывает backslash esc-последовательности по-умолчанию. (POSIX, SUS, XPG).