Risposte:
In zsh
, puoi usare setopt
per mostrare le opzioni abilitate e unsetopt
per 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 -o
per 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
. zsh
ha solo una serie di opzioni che possono essere impostate con setopt
o set -o
.
Proprio come con bash
(o qualsiasi shell POSIX), puoi anche fare set -o
o set +o
vedere le impostazioni delle opzioni correnti.
Il zsh/parameter
modulo, che fa parte della distribuzione predefinita, fornisce un array associativo options
che 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_options
opzione. È possibile chiamare il emulate
built-in per ripristinare le opzioni su uno stato predefinito.
my_function () {
setopt extended_glob local_options
}
another_function () {
emulate -L zsh
setopt extended_glob
}
setopt
stampa solo le opzioni non abilitate per impostazione predefinita per quella modalità di emulazione.