目前我正在做一些单元测试,这些单元测试是从bash执行的。单元测试是在bash脚本中初始化、执行和清理的。此脚本通常包含init()、execute()和cleanup()函数。但它们不是强制性的。我想测试一下是否定义了它们。
我之前通过贪婪和seding源代码做到了这一点,但这似乎是错误的。有没有更优雅的方式来做这件事?
编辑:下面的代码片段很有吸引力:
fn_exists()
{
LC_ALL=C type $1 | grep -q 'shell function'
}发布于 2012-02-27 22:29:32
我特别喜欢Grégory Joseph的解决方案
但我对它做了一点修改,以克服“双引号丑陋的技巧”:
function is_executable()
{
typeset TYPE_RESULT="`type -t $1`"
if [ "$TYPE_RESULT" == 'function' ]; then
return 0
else
return 1
fi
}https://stackoverflow.com/questions/85880
复制相似问题