Réponses:
Dans zsh
, vous pouvez utiliser setopt
pour afficher les options activées et unsetopt
pour indiquer celles qui ne le sont pas:
$ setopt
autocd
histignorealldups
interactive
monitor
sharehistory
shinstdin
zle
$ unsetopt
noaliases
allexport
noalwayslastprompt
alwaystoend
noappendhistory
autocd
autocontinue
noautolist
noautomenu
autonamedirs
.....
En bash
, vous pouvez utiliser shopt -p
.
set -o
pour la liste complète.
Il suffit d'utiliser:
[[ -o extended_glob ]]
Cela fonctionne également dans bash
, mais uniquement pour les options définies par set -o
, pas celles définies par shopt
. zsh
possède un seul jeu d’options pouvant être défini avec setopt
ou set -o
.
Tout comme avec bash
(ou n’importe quel shell POSIX), vous pouvez aussi faire set -o
ou set +o
voir les paramètres d’option actuels.
Le zsh/parameter
module, qui fait partie de la distribution par défaut, fournit un tableau associatif options
indiquant les options activées.
if [[ $options[extended_glob] = on ]]; then …
extended_glob
Vous pouvez également vérifier si les options ont un alias à une seule lettre (ce qui n’est pas le cas ) $-
.
Notez qu'il est rarement utile de tester les options activées. Si vous devez activer ou désactiver une option dans un morceau de code, insérez ce code dans une fonction et définissez l' local_options
option. Vous pouvez appeler la commande emulate
intégrée pour réinitialiser les options à un état par défaut.
my_function () {
setopt extended_glob local_options
}
another_function () {
emulate -L zsh
setopt extended_glob
}
setopt
seules les options non activées par défaut pour ce mode d'émulation sont imprimées.