我有一个shell脚本
function fun1(){
return 0;
}
function fun2(){
return 1;
}
if fun1 && fun2 ;then
echo "success"
else
echo "failure"
fi
效果很好.. 我需要用双括号括起来。我正在尝试这样做。
if [[ fun1 ]] && [[ fun2 ]] ;then
echo "success"
else
echo "failure"
fi
但是无论函数的返回值如何,它总是返回成功。.
有人可以告诉我我要去哪里错吗? 但是如果使用o
答案 0 :(得分:2)
if fun1
表示使用函数fun1
的结果就像使用条件一样。因此它按预期工作。
if [[ fun1 ]]
使用[[ or [
后,您将调用命令test
(或针对test
的新功能强大的命令[[
),因此fun1
将是test
命令的参数。这样,您的检查将变为:“如果fun1
不是空字符串”。因此,它始终返回true。