我已经研究了这里处理 BASH if-then 语句中的函数返回值的各种方法,但似乎都不起作用。这是我所拥有的
function is_cloned()
{
if [ -d $DIR_NAME ]
then
return $SUCCESS
fi
return $FAILURE
}
如果我单独调用它并检查返回值,它将起作用,如下所示:
is_cloned
retval=$?
if [ $retval -eq $FAILURE ]
then
...
fi
如何在 if 语句中使用函数调用?或者根本没有办法利用返回值?
if
Bash 中的语句可以直接使用函数的退出代码。
所以你可以这样写:
if is_cloned
then
echo success
fi
如果您想检查失败,如您发布的代码中所示,您可以使用!
操作员:
if ! is_cloned
then
echo failure
fi
顺便说一下,你的is_cloned
函数也可以更多地依赖退出代码,
你可以这样写:
is_cloned() {
[ -d "$DIR_NAME" ]
}
这是可行的,因为函数的退出代码是最后执行的命令的退出代码,
和退出代码[ ... ]
如果成功则为 0,否则非零(= 失败)。
还要记住将用作命令参数的变量名称用双引号括起来,
正如我所做的那样DIR_NAME
here.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)