在bash中,我们可以通过以下方式导出函数:
fname(){
echo "Foo"
}
export -f fname
在这种情况下,导出函数fname
。但是如何列出这个或其他导出的函数? AFAIK,命令export
或export -p
可用于显示所有导出/包含的变量,但这不包括函数。
答案 0 :(得分:6)
以下将按名称列出所有导出的函数:
declare -x -F
如果您还想看功能代码使用:
declare -x -f
有关详细信息,请参阅help declare
。
答案 1 :(得分: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"
}
$
答案 2 :(得分: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