【发布时间】:2017-10-11 17:19:11
【问题描述】:
我已经查看了在 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总是检查命令的返回值。注意[是一个命令。试试help [看看。除了[,您还可以使用任何命令或函数,如下所示:if my_cmd ; then do this ; else do that ; -
除非您有一些非常具体的
SUCCESS和FAILURE值来代替0和1,否则请使用is_cloned () { [ -d "$DIR_NAME" ]; }。