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
声明也是如此。