如何删除Bash功能?

too*_*php 170 bash shell zsh

我这样做了:

$ z() { echo 'hello world'; }
Run Code Online (Sandbox Code Playgroud)

我怎么摆脱它?

Rob*_*ble 257

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

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

unset z
Run Code Online (Sandbox Code Playgroud)

但是如果你有一个函数和一个名为z的变量,那么只会取消该变量,而不是函数.


Mic*_*ott 5

在 Zsh 中:

unfunction z
Run Code Online (Sandbox Code Playgroud)

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

  • unset
  • unhash
  • unalias
  • unlimit
  • unsetopt

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

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