Pec*_*tum 3 string bash shell grep function
我想知道是否有可能检查脚本中是否存在函数.就在这一刻,我有一些if if来检查一个值,然后调用一个函数,但是想知道是否有可能做类似的事情:
if[[ ${function_name}Function exists ]]
then
.....call function etc
fi
Run Code Online (Sandbox Code Playgroud)
脚本中可能有一个函数
这可能吗?
if type Function &>/dev/null
then
...
fi
Run Code Online (Sandbox Code Playgroud)
例:
$ type f 2>& /dev/null && echo f exists || echo f does not exist
f does not exist
$ f()
> {
> echo 1
> }
$ type f >& /dev/null && echo f exists || echo f does not exist
f exists
Run Code Online (Sandbox Code Playgroud)
我在这里干什么
f
存在; 它不存在,好的.如果没有额外的检查,您无法直接说出它是命令,别名还是函数; 如果该实体存在或不存在,您知道的所有内容.
如果要运行函数而只运行函数,则必须使检查更严格:
type Function | grep -q '^function$' 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
在bash中你也可以使用declare -F function
.(感谢那个人)