if 语句调用函数和不正确的结果

if 语句调用函数和不正确的结果

shell 脚本预计只会调用一个函数,但实际上会同时调用两个函数。如何解决这个问题,输出是

两者相同

两者不相同

#!/bin/bash

var1=ORCL
var2=ORCL

function f1    
{  
    echo "both are same"
}

function f2
{
    echo "both are not same"
}

if [ $var1=$var2 ]; 
then
    f1  
fi

if [ $var1!=$var2 ]; 
then
    f2
fi

答案1

空间在关系运算符中使用时是必需的如果状况

前任:

if [ $var1 = $var2 ] ;

if [ $var1 != $var2 ] ;

修改脚本

#!/bin/bash

var1=ORCL
var2=ORCL

f1()
{
echo "both are same"
}

f2()
{
echo "both are not same"
}

if [ $var1 = $var2 ];
then
        f1
fi

if [ $var1 != $var2 ];
then
        f2
fi

答案2

您需要添加空格。

代替

if [ $var1=$var2 ]; 

if [ "$var1" = "$var2" ];

第二个if声明也是如此。

相关内容