Чтобы включить опцию, мы можем использовать setopt
. например:
setopt extended_glob
Как мы можем проверить, включена ли опция в настоящее время?
В zsh
, вы можете использовать, setopt
чтобы показать опции включены и unsetopt
показать, которые не включены:
$ setopt
autocd
histignorealldups
interactive
monitor
sharehistory
shinstdin
zle
$ unsetopt
noaliases
allexport
noalwayslastprompt
alwaystoend
noappendhistory
autocd
autocontinue
noautolist
noautomenu
autonamedirs
.....
В bash
, вы можете использовать shopt -p
.
setopt
печатаются только параметры, не включенные по умолчанию для этого режима эмуляции.set -o
для полного списка.Просто используйте:
Это также работает
bash
, но только для опций, установленныхset -o
, а не тех, которые установленыshopt
.zsh
имеет только один набор опций , которые могут быть установлены либоsetopt
илиset -o
.Как и с
bash
(или любой оболочкой POSIX), вы также можете сделатьset -o
илиset +o
просмотреть текущие настройки параметров.источник
zsh/parameter
Модуль, который является частью распределения по умолчанию, обеспечивает ассоциативный массив ,options
который указывает , какие опции включены.Для опций, которые имеют однобуквенный псевдоним (это не так
extended_glob
), вы также можете проверить$-
.Обратите внимание, что редко бывает полезно проверить, какие опции включены. Если вам нужно включить или отключить параметр в фрагменте кода, поместите этот код в функцию и установите
local_options
параметр. Вы можете вызватьemulate
встроенную функцию для сброса параметров в состояние по умолчанию.источник