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 zsh
Shell 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 unset
die Funktionen auch auf ähnliche Weise vollständig aus der aktuellen Umgebung entfernen:
unset -f -m '*'
Antwort2
Das assoziative Arrayfunctions
enthält alle definierten Funktionen (einschließlich Autoloading-Stubs), so${(k)functions}
erweitert sich zur Liste der Namen definierter Funktionen.
unset -f ${(k)functions}