Wie deaktiviere ich alle Funktionen in zsh?

Wie deaktiviere ich alle Funktionen in zsh?

Ich weiß, dass ich eine einzelne Funktion in Bash/Zsh aufheben kann unset -f $FUNCTION_NAME, aber wie hebe ich alle Funktionen auf?

Antwort1

In der zshShell können Siedeaktivierenalle Funktionen mit

disable -f -m '*'

(wörtlich: „Deaktiviere jede Funktion, deren Name übereinstimmt *“).

Anschließend können Sie diese mit dem analogen Anruf wieder aktivieren enable.

Sie können unsetdie Funktionen auch auf ähnliche Weise vollständig aus der aktuellen Umgebung entfernen:

unset -f -m '*'

Antwort2

Das assoziative Arrayfunctionsenthält alle definierten Funktionen (einschließlich Autoloading-Stubs), so${(k)functions}erweitert sich zur Liste der Namen definierter Funktionen.

unset -f ${(k)functions}

verwandte Informationen