Risposte:
In zsh, puoi usare setoptper mostrare le opzioni abilitate e unsetoptper mostrare quali non sono abilitate:
$ setopt
autocd
histignorealldups
interactive
monitor
sharehistory
shinstdin
zle
$ unsetopt
noaliases
allexport
noalwayslastprompt
alwaystoend
noappendhistory
autocd
autocontinue
noautolist
noautomenu
autonamedirs
.....
In bash, puoi usare shopt -p.
set -oper l'elenco COMPLETO.
Usa solo:
[[ -o extended_glob ]]
Funziona anche in bash, ma solo per le opzioni impostate da set -o, non quelle impostate da shopt. zshha solo una serie di opzioni che possono essere impostate con setopto set -o.
Proprio come con bash(o qualsiasi shell POSIX), puoi anche fare set -oo set +ovedere le impostazioni delle opzioni correnti.
Il zsh/parametermodulo, che fa parte della distribuzione predefinita, fornisce un array associativo optionsche indica quali opzioni sono attive.
if [[ $options[extended_glob] = on ]]; then …
Per le opzioni che hanno un alias a lettera singola (che non è il caso di extended_glob), puoi anche controllare $-.
Si noti che raramente è utile verificare quali opzioni sono abilitate. Se è necessario abilitare o disabilitare un'opzione in un pezzo di codice, inserire quel codice in una funzione e impostare l' local_optionsopzione. È possibile chiamare il emulatebuilt-in per ripristinare le opzioni su uno stato predefinito.
my_function () {
setopt extended_glob local_options
}
another_function () {
emulate -L zsh
setopt extended_glob
}
setoptstampa solo le opzioni non abilitate per impostazione predefinita per quella modalità di emulazione.