Answers:
在中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
。
set -o
完整列表。
只需使用:
[[ -o extended_glob ]]
这也适用bash
,但仅适用于由设置的选项set -o
,不适用于设置的选项shopt
。zsh
只有一组选项,可以使用setopt
或设置set -o
。
就像bash
(或任何POSIX shell)一样,您也可以执行set -o
或set +o
查看当前选项设置。
该zsh/parameter
模块是默认分发的一部分,提供了一个关联数组options
,用于指示启用了哪些选项。
if [[ $options[extended_glob] = on ]]; then …
对于具有单字母别名(不是extended_glob
)的选项,您也可以选中$-
。
请注意,测试启用了哪些选项很少有用。如果需要在一段代码中启用或禁用某个选项,请将该代码放入函数中并设置该local_options
选项。您可以调用emulate
内建函数将选项重置为默认状态。
my_function () {
setopt extended_glob local_options
}
another_function () {
emulate -L zsh
setopt extended_glob
}
setopt
仅打印该仿真模式默认未启用的选项。