如何显示zsh函数定义(如bash“type myfunc”)?
如何在zsh中显示函数的定义?  type foo不给定义。 
在bash中:
 bash$ function foo() { echo hello; } bash$ foo hello bash$ type foo foo is a function foo () { echo hello } 
在zsh:
 zsh$ function foo() { echo hello; } zsh$ foo hello zsh$ type foo foo is a shell function 
	
  zsh的习惯用法是, -f标志打印函数定义: 
 zsh$ whence -f foo foo () { echo hello } zsh$ 
 在zsh中, type被定义为等同于whence -v ,所以你可以继续使用type ,但是你需要使用-f参数: 
 zsh$ type -f foo foo () { echo hello } zsh$ 
 最后,在被定义为相等的zsh中which whence -c – 以csh-like格式打印结果,这样which foo将产生相同的结果。 
  man zshbuiltins所有这一切。 
我一直只用这个。
如果你不确定你在找什么,你可以input
 functions 
它会显示所有已定义的function。
请注意,有时候会有很多这样的情况,所以您可能想要传送到寻呼机程序:
 functions | less 
取消定义一个函数,使用
 unfunction functionname 
TL;博士
 declare -f foo # works in zsh and bash typeset -f foo # works in zsh, bash, and ksh 
  在这种情况下 , type -f / whence -f /是不理想的 ,因为它们的目的是报告具有最高优先级的命令表单 (除非你还指定-a ,在这种情况下所有的命令forms被报告) – 而不是专门报告操作数作为一个函数 。 
  -f选项不会改变它 – 它只在查找中包含 shell函数。 
 别名和shell关键字的优先级高于shell函数,所以,在这种情况下,如果还定义了别名foo ,则type -f foo将报告别名定义。 
 请注意, zsh在默认情况下会在脚本中扩展别名(就像ksh ,而不是bash ),即使您先closures别名扩展,也可以先type -f / whence -f / which报告别名。