Respuestas:
En zsh
, puede usar setopt
para mostrar las opciones habilitadas y unsetopt
para mostrar cuáles no están habilitadas:
$ setopt
autocd
histignorealldups
interactive
monitor
sharehistory
shinstdin
zle
$ unsetopt
noaliases
allexport
noalwayslastprompt
alwaystoend
noappendhistory
autocd
autocontinue
noautolist
noautomenu
autonamedirs
.....
En bash
, puedes usar shopt -p
.
set -o
para la lista COMPLETA.
Solo usa:
[[ -o extended_glob ]]
Eso también funciona bash
, pero solo para las opciones establecidas por set -o
, no las establecidas por shopt
. zsh
tiene solo un conjunto de opciones que se pueden configurar con setopt
o set -o
.
Al igual que con bash
(o cualquier shell POSIX), también puede hacer set -o
o set +o
ver la configuración de opciones actual.
El zsh/parameter
módulo, que forma parte de la distribución predeterminada, proporciona una matriz asociativa options
que indica qué opciones están activadas.
if [[ $options[extended_glob] = on ]]; then …
Para las opciones que tienen un alias de una sola letra (que no es el caso de extended_glob
), también puede verificar $-
.
Tenga en cuenta que rara vez es útil probar qué opciones están habilitadas. Si necesita habilitar o deshabilitar una opción en un fragmento de código, coloque ese código en una función y configure la local_options
opción. Puede llamar al emulate
builtin para restablecer las opciones a un estado predeterminado.
my_function () {
setopt extended_glob local_options
}
another_function () {
emulate -L zsh
setopt extended_glob
}
setopt
solo imprime las opciones no habilitadas por defecto para ese modo de emulación.