fname
在名为a.sh的文件中定义一个 bash 函数:
fname(){
echo "Foo"
}
我们可以这样包含函数:
source a.sh
之后我们可以fname
在shell中调用。我想知道是否有办法显示所有包含的功能。
谢谢!
要列出所有声明的函数和主体,您可以运行:
set
或者
declare -f
如果您只想要函数名称:
declare -f -F
或者
declare -f -F | cut -d " " -f3
并来自http://wiki.bash-hackers.org/scripting/obsolete关于typeset
:
这与上述密切相关,应该经常一起使用。typeset 的存在主要是为了与 ksh 兼容,但在 Bash 中被标记为“已弃用”(尽管我并不完全同意这一点)。这在某种程度上是有道理的,因为无法保证未来的兼容性,而且任何兼容性都需要了解其他 shell 的非 POSIX 特性及其差异。使用 declare 而不是 typeset 强调您的意图是“仅限 bash”,并且肯定会在其他任何地方中断(如果幸运的话,可能 zsh 除外)。Dash 和 Debian 对本地内置程序的政策要求使问题更加复杂,它本身与 Bash 和其他 shell 不完全兼容。
typeset -f
关于文档typeset