Odpowiedzi:
Za zsh
pomocą możesz setopt
wyświetlić opcje włączone i unsetopt
pokazać, które nie są włączone:
$ setopt
autocd
histignorealldups
interactive
monitor
sharehistory
shinstdin
zle
$ unsetopt
noaliases
allexport
noalwayslastprompt
alwaystoend
noappendhistory
autocd
autocontinue
noautolist
noautomenu
autonamedirs
.....
W bash
, możesz użyć shopt -p
.
set -o
dla PEŁNEJ listy.
Po prostu użyj:
[[ -o extended_glob ]]
Działa to również bash
, ale tylko dla opcji ustawionych przez set -o
, a nie dla opcji ustawionych przez shopt
. zsh
ma tylko jeden zestaw opcji, które mogą być ustawiane albo setopt
albo set -o
.
Podobnie jak w przypadku bash
(lub dowolnej powłoki POSIX), możesz także zrobić set -o
lub set +o
zobaczyć bieżące ustawienia opcji.
zsh/parameter
Moduł, który jest częścią dystrybucji domyślnym zapewnia tablicę asocjacyjną options
, która wskazuje, które opcje są włączone.
if [[ $options[extended_glob] = on ]]; then …
W przypadku opcji, które mają alias jednoliterowy (co nie ma miejsca extended_glob
), możesz również sprawdzić $-
.
Pamiętaj, że rzadko przydatne jest sprawdzenie, które opcje są włączone. Jeśli chcesz włączyć lub wyłączyć opcję w kodzie, umieść ten kod w funkcji i ustaw local_options
opcję. Możesz wywołać emulate
wbudowane, aby zresetować opcje do stanu domyślnego.
my_function () {
setopt extended_glob local_options
}
another_function () {
emulate -L zsh
setopt extended_glob
}
setopt
drukuje tylko opcje domyślnie wyłączone w tym trybie emulacji.