4

在 bash 中,我们可以通过以下方式导出函数:

fname(){
  echo "Foo"
}

export -f fname

在这种情况下,函数fname被导出。但是如何列出这个或其他导出的函数呢?AFAIK,命令exportexport -p可用于显示所有导出/包含的变量,但这不包括函数。

4

3 回答 3

7

下面将按名称列出所有导出的函数:

declare -x -F

如果您还想查看功能代码,请使用:

declare -x -f 

详情请参阅help declare

于 2013-03-12T11:15:37.260 回答
0

declare是要使用的命令。

这是一个设置和导出一些函数并将它们全部列出或仅列出一个特定函数的示例:

$ foo() { echo "Foo"; }
$ export -f foo
$ bar() { echo "Bar"; }
$ export -f bar
$
$ declare -f
bar ()
{
    echo "Bar"
}
declare -fx bar
foo ()
{
    echo "Foo"
}
declare -fx foo
$
$ declare -f foo
foo ()
{
    echo "Foo"
}
$
于 2013-03-12T11:26:21.003 回答
0

所选解决方案的输出是:

declare -fx exported_function_one declare -fx exported_function_two

就我而言,因为我只想要函数的名称,所以我这样做了:

exported_functions=$(declare -x -F | sed 's/declare -fx//')

哪个输出:

exported_function_one exported_function_two

希望它对某人有所帮助:D

于 2019-10-20T13:36:28.790 回答