如何列出我的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