2013-03-12 74 views
1

在bash中,我們可以通過以下方式導出功能:如何列出所有導出的bash函數?

fname(){ 
    echo "Foo" 
} 

export -f fname 

在這種情況下,功能fname出口。但如何列出這個或其他導出的功能? AFAIK,命令exportexport -p可用於顯示所有導出/包含的變量,但不包括函數。

回答

6

下面將通過名稱列出所有導出函數:

declare -x -F 

如果您還想看到函數代碼使用:

declare -x -f 

詳見help declare

+0

它適用於「出口」,但對於通過命令「源」導出功能不起作用。 – hushwings 2013-03-12 11:27:56

+0

'source'不會導出任何內容。它只是*「包括」*另一個源文件。 – 2013-03-12 11:29:31

+0

那我怎麼知道哪些功能已被包含? – hushwings 2013-03-12 11:31:42

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" 
} 
$ 
相關問題