删除函数定义(相当于unalias)

我目前正在构build一个程序,通过定义每个项目的别名和函数,根据他正在处理的项目,添加到当前用户的shell中。 这些别名和函数可能并且肯定会有相同的名称,例如cdproj ,它将cd到项目的根目录。

我想删除以前定义的别名和函数,当改变项目(之前(重新)定义其他项目的别名和function。我知道我可以删除在bash和zsh的unalias别名,但我怎么会做同样的一个函数?

 unset -f my_function 

将删除(或取消)函数my_function

zsh unfunction my_function

也许,我已经有点晚了,但这个function仍然存在。