在shell中执行函数之前检查函数是否存在

MOH*_*MED 4 linux shell function ash

我想在shell脚本中执行它之前检查函数是否存在.

脚本shell支持吗?怎么做?

fed*_*qui 6

正如本评论中所述,这应该是:

type -t function_name
Run Code Online (Sandbox Code Playgroud)

function如果它是一个函数,则返回.

测试

$ type -t f_test
$ 
$ f_test () { echo "hello"; }
$ type -t f_test
function
Run Code Online (Sandbox Code Playgroud)

请注意,type提供了良好的信息:

$ type -t ls
alias
$ type -t echo
builtin
Run Code Online (Sandbox Code Playgroud)

  • 是`-t`在`ash`中可用吗?它不是POSIX,所以我想知道它是否是一个"bash"扩展. (2认同)