Я знаю, что можно использовать unset -f $FUNCTION_NAME
для отмены одной функции в bash / zsh, но как отменить все функции?
решение1
В zsh
оболочке вы можетезапрещатьвсе функции с использованием
disable -f -m '*'
(дословно «отключить каждую функцию, имя которой совпадает *
»).
Затем вы можете снова включить их с помощью аналогичного enable
вызова.
unset
Аналогичным образом можно полностью удалить функции из текущей среды:
unset -f -m '*'
решение2
Ассоциативный массивfunctions
содержит все определенные функции (включая заглушки автозагрузки), поэтому${(k)functions}
расширяется до списка имен определенных функций.
unset -f ${(k)functions}