如何删除/删除外壳程序功能?


180

我已经做到了:

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

我该如何摆脱呢?

Answers:


271
unset -f z

将取消设置名为z的函数。几个人回答了:

unset z

但是如果您有一个函数和一个名为z的变量,则只会设置该变量,而不设置该函数。


请注意,这不仅适用于POSIX兼容的 Shell,还适用于Bash。
富兰克林·于

2

在Zsh中:

unfunction z

这是unhash -f zor 的另一个(可能更好)的名称,unset -f z并且与以下系列的其他成员一致:

  • unset
  • unhash
  • unalias
  • unlimit
  • unsetopt

如果对此类事情有疑问,请键入un<tab>以查看完整列表。

(略相关:这也是不错的功能/别名一样realiasesrefunctionsresetoptsreenv,等来“重新source”相应的文件,如果你已经分离/组合它们的方式。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.