The*_*aul 249
declare -F
可以使用builtin命令的
-f选项 列出函数名称和定义declare(请参阅Bash Builtins).该-F选项declare仅列出函数名称(以及可选的源文件和行号).
Ran*_*ohn 80
假设bash shell:
typeset -f
将列出功能.
typeset -F
将仅列出函数名称.
Joh*_*den 59
declare -F
将为您提供所有功能的名称
type function_name
将为您提供特定功能的来源
Lri*_*Lri 48
declare -F 实际上打印声明命令而不仅仅是函数名称:
$ declare -F
declare -f function1
declare -f function2
您可以使用compgen -A function仅打印功能名称:
$ compgen -A function
function1
function2
小智 29
排版已经过时,请使用:
declare -f
要么
declare -f function_name
要么
type function_name
我不是这方面的专家,仍在学习,但在找到这个问题及其答案后,因为我想要同样的东西,我写了以下内容(基于“原型保罗的声明”答案),以最终给我我想要的东西:别名和函数的格式化列表:
function functionaliaslist() {
    echo
    echo -e "\033[1;4;32m""Functions:""\033[0;34m"
    declare -F | awk {'print $3'}
    echo
    echo -e "\033[1;4;32m""Aliases:""\033[0;34m"
    alias | awk {'print $2'} | awk -F= {'print $1'}
    echo
    echo -e "\033[0m"
}
那是在我看到Lri 的答案之前,因此据此推断,我用适当的命令替换declare和alias行compgen,以获得:
function functionaliaslist() {
    echo
    echo -e "\033[1;4;32m""Functions:""\033[0;34m"
    compgen -A function
    echo
    echo -e "\033[1;4;32m""Aliases:""\033[0;34m"
    compgen -A alias
    echo
    echo -e "\033[0m"
}
为我想要的东西提供了一种享受。分享以防对其他人有帮助。
还有许多其他可用的“操作” compgen -A [action](当然还有其他选项compgen)。我在这里找到了一篇很好的文章,其中还包含指向手册页的链接(因为man compgen在某些情况下不起作用)。
小智 6
set | grep " ()"
您还可以使用fgrep或hgrep代替grep (hgrep 是我个人的最爱,它是 grep 但它可以简化“grep-ped”的结果。
hgrep可以在这里找到: ACME 实验室 hgrep