如何列出包含bash函数?

时间:2013-03-12 12:09:59

标签: bash shell

在名为 a.sh 的文件中定义bash函数fname

fname(){
  echo "Foo"
}

我们可以用这种方式包含这个功能:

  

source a.sh

之后我们可以调用shell中的fname。我想知道是否有办法显示所有包含的功能。

谢谢!

2 个答案:

答案 0 :(得分:3)

要列出所有声明的函数和正文,您可以运行:

set

declare -f

如果您只想要函数名称:

declare -f -F 

declare -f -F | cut -d " " -f3 

Note that typeset is deprecated in 2013

http://wiki.bash-hackers.org/scripting/obsolete关于typeset

  

这与上述密切相关,应经常使用   一起。 typeset主要用于ksh兼容性,但是   在Bash中被标记为“已弃用”(尽管我并不完全同意   这个)。这有点意义,因为未来的兼容性不能   保证,任何兼容性都需要了解   其他shell的非POSIX功能及其差异。运用   声明而不是排版强调你的意图   “仅限bash”,并且肯定会破坏其他地方(除了可能   zsh,如果你很幸运)。 Dash和他的问题进一步复杂化了   本地内置的Debian策略要求本身并非如此   与Bash和其他炮弹完全兼容。

答案 1 :(得分:0)

typeset -f

typeset

上的

Documentation