如何删除/删除 shell 函数?

我这样做了:

$ z() { echo 'hello world'; }

我怎么才能摆脱它?

35511 次浏览
unset -f z

将取消名为 z 的函数的设置:

unset z

但是如果你有一个函数和一个名为 z 的变量,那么只有变量是未设置的,而不是函数。

在 Zsh 中:

unfunction z

这是 unhash -f zunset -f z的另一个(可以说是更好的)名字,与家族中的其他成员一致:

  • unset
  • unhash
  • unalias
  • unlimit
  • unsetopt

如果对这些事情有疑问,输入 un<tab>查看完整的列表。

(稍微相关一点: 如果你已经将它们分开/分组,那么使用函数/别名(如 realiasesrefunctionsresetoptsreenv等)来“ re-source”各自的文件也很不错。)