Как сбросить все функции в zsh?

Как сбросить все функции в zsh?

Я знаю, что можно использовать unset -f $FUNCTION_NAMEдля отмены одной функции в bash / zsh, но как отменить все функции?

решение1

В zshоболочке вы можетезапрещатьвсе функции с использованием

disable -f -m '*'

(дословно «отключить каждую функцию, имя которой совпадает *»).

Затем вы можете снова включить их с помощью аналогичного enableвызова.

unsetАналогичным образом можно полностью удалить функции из текущей среды:

unset -f -m '*'

решение2

Ассоциативный массивfunctionsсодержит все определенные функции (включая заглушки автозагрузки), поэтому${(k)functions}расширяется до списка имен определенных функций.

unset -f ${(k)functions}

Связанный контент