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).