Um eine Option zu aktivieren, können wir verwenden setopt
. z.B:
setopt extended_glob
Wie können wir überprüfen, ob eine Option derzeit aktiviert ist?
In zsh
können Sie die setopt
aktivierten und unsetopt
nicht aktivierten Optionen anzeigen:
$ setopt
autocd
histignorealldups
interactive
monitor
sharehistory
shinstdin
zle
$ unsetopt
noaliases
allexport
noalwayslastprompt
alwaystoend
noappendhistory
autocd
autocontinue
noautolist
noautomenu
autonamedirs
.....
In bash
können Sie verwenden shopt -p
.
setopt
nur die Optionen gedruckt werden, die für diesen Emulationsmodus nicht standardmäßig aktiviert sind.set -o
für die vollständige Liste verwenden.Benutz einfach:
Das funktioniert auch in
bash
, aber nur für die von gesetzten Optionenset -o
, nicht für die von gesetztenshopt
.zsh
hat nur einen Satz von Optionen, die entweder mitsetopt
oder eingestellt werden könnenset -o
.Genau wie bei
bash
(oder jeder POSIX-Shell) können Sie auch die aktuellen Optionseinstellungen vornehmenset -o
oderset +o
anzeigen.quelle
Das
zsh/parameter
Modul, das Teil der Standardverteilung ist, stellt ein assoziatives Array bereitoptions
, das angibt, welche Optionen aktiviert sind.Bei Optionen mit einem Alias aus einem Buchstaben (was nicht der Fall ist
extended_glob
) können Sie auch prüfen$-
.Beachten Sie, dass es selten sinnvoll ist, zu testen, welche Optionen aktiviert sind. Wenn Sie eine Option in einem Code aktivieren oder deaktivieren müssen, fügen Sie diesen Code in eine Funktion ein und legen Sie die
local_options
Option fest. Sie können dasemulate
eingebaute Programm aufrufen, um die Optionen auf einen Standardzustand zurückzusetzen.quelle