Відповіді:
В 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), ви також можете зробити 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для цього режиму емуляції друкуються лише ті параметри, які за умовчанням не включені.