Remove function definition (unalias equivalent)

BashShellZsh

Bash Problem Overview


I'm currently building a program which adds to the current user's shell depending on the project he's working on, by defining per-project aliases and functions. These aliases and functions may and will certainly have the same name like for instance cdproj, which would cd to the project's root.

I would like to remove previously defined aliases and functions when changing project (before (re)defining aliases and functions for the other project. I know I can remove an alias with unalias in both bash and zsh, but how would I do the same for a function?

Bash Solutions


Solution 1 - Bash

unset -f my_function

will remove (or unset) the function my_function

Solution 2 - Bash

unfunction my_function in zsh

Perhaps, I'm a bit late in this good old '15, but this feature persists.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questiongreg0ireView Question on Stackoverflow
Solution 1 - BashennuikillerView Answer on Stackoverflow
Solution 2 - Bashtheoden8View Answer on Stackoverflow