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