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

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

它只获取该文件中的那些,而不是在子文件或动态定义的那些。

是否有更方便的方法来查找当前定义的函数?


当前回答

排版已过时,请使用:

declare -f

or

declare -f function_name

or

type function_name

其他回答

排版已过时,请使用:

declare -f

or

declare -f function_name

or

type function_name
declare -F

会给你所有函数的名字

type function_name

会给你一个特定函数的源

set | grep " ()"

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

hgrep可以在这里找到:ACME实验室hgrep

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

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

你可以使用compgen -A函数只打印函数名:

$ compgen -A function
function1
function2

声明- f

的-f选项中可以列出函数名和定义 声明内置命令(参见Bash内置命令)。要声明的-F选项 只列出函数名吗 (还可以选择源文件和行号)。

Bash参考手册