我知道我可以用来unset -f $FUNCTION_NAME
取消设置 bash / zsh 中的单个函数,但如何取消设置所有函数?
答案1
在zsh
shell 中,您可以禁用所有功能都使用
disable -f -m '*'
(字面意思是“禁用名称匹配的每个函数*
”)。
然后,您可以通过类似的调用再次启用它们enable
。
您还可以使用unset
类似的方式从当前环境中完全删除这些功能:
unset -f -m '*'
答案2
关联数组functions
包含所有定义的函数(包括自动加载存根),所以${(k)functions}
展开为已定义函数的名称列表。
unset -f ${(k)functions}