gpt4 book ai didi

linux - BASH if 语句中的函数返回值

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:44:55 24 4
gpt4 key购买 nike

我在这里查看了在 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 语句中使用函数调用?或者根本没有办法利用返回值?

最佳答案

Bash 中的

if 语句可以直接使用函数的退出代码。所以你可以这样写:

if is_cloned
then
echo success
fi

如果你想检查失败,就像在你发布的代码中一样,你可以使用 ! 运算符:

if ! is_cloned
then
echo failure
fi

顺便说一下,您的 is_cloned 函数也可以更多地依赖退出代码,你可以这样写:

is_cloned() {
[ -d "$DIR_NAME" ]
}

这是可行的,因为函数的退出代码是最后执行的命令的退出代码,如果成功,[ ... ] 的退出代码为 0,否则为非零(= 失败)。

还记得将用作命令参数的变量名加双引号,正如我在此处所做的DIR_NAME

关于linux - BASH if 语句中的函数返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46694112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com