在名为 a.sh 的文件中定义bash函数fname
:
fname(){
echo "Foo"
}
我们可以用这种方式包含这个功能:
source a.sh
之后我们可以调用shell中的fname
。我想知道是否有办法显示所有包含的功能。
谢谢!
答案 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)