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

gre*_*ire 52 bash shell zsh

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

我想在更改项目时删除先前定义的别名和函数(在(重新)定义另一个项目的别名和函数之前.我知道我可以unalias在bash和zsh中删除别名,但是我如何为a做同样的事情功能?

enn*_*ler 79

unset -f my_function
Run Code Online (Sandbox Code Playgroud)

将删除(或取消设置)my_function函数

  • `-f` 用于函数,而不是打乱常规变量。在此副本中进行了解释:http://stackoverflow.com/a/245409/1695680 (2认同)

the*_*den 16

unfunction my_function 在 zsh

也许,我在这个好老的'15'中有点迟了,但这个功能仍然存在.

  • 永远不会太迟。谢谢。 (2认同)