如何列出我的shell中定义的函数?

我可以键入别名来显示所有别名的列表。

但是对于函数,我所能做的只是grep我的.bash_profile

这只会获得该文件中的那些文件,而不是那些在子文件中定义的或dynamic的文件。

有没有更方便的方法来找出目前定义的function?

函数的名字和定义可以用-f选项来declare内build命令(见Bash Builtins)。 declare-F选项将仅列出函数名称(以及可选的源文件和行号)。

Bash参考手册

假设bash shell:

 typeset -f 

将列出function。

 typeset -F 

将只列出函数名称。

 declare -F 

会给你所有function的名字

 type function_name 

会给你一个特定function的来源

declare -F实际上打印声明命令而不仅是函数名称:

 $ declare -F declare -f function1 declare -f function2 

您可以使用compgen -A function仅打印函数名称:

 $ compgen -A function function1 function2 

排版已过时,请使用:

 declare -f 

要么

 declare -f function_name 

要么

 type function_name 
 set | grep " ()" 

代替grep,你也可以使用fgrep或者hgrep (hgrep是我个人最喜欢的,它是grep,但是它引用了grep-ped的结果。

hgrep可以在这里find: ACME实验室hgrep