为什么同时执行IF

  • 本文关键字:执行 IF bash shell ubuntu
  • 更新时间 :
  • 英文 :


我的代码是:

if [ "$server" == "a" ]; then
        echo "apache"
fi
if [ "$server" ==  "t"   ]
then
        echo "tomcat"
else
        echo "Entered"
fi

$server的值是t。我希望将值tomcat打印在控制台上。但是Entered也打印了!

我对此感到困惑。ifelse语句如何执行?

else分支只能在先前的语句评估为false时执行。我知道的那个规则并没有任何例外。bash档案中可能还有其他可疑的事情引起了问题。

确保bash是执行脚本的内容。#!/bin/bash应该在第一行。

解决您的问题,做类似的事情:

  • 将回声语句放入每个分支:

    if [ "$server" == "a" ]; then
        echo "in branch apache"
        echo "apache"
    fi
    if [ "$server" ==  "t"   ]
    then
            echo "in branch tomact"
            echo "tomcat"
    else
            echo "in else branch"
            echo "Entered"
    fi
    

如果您仍然找不到问题,则其中之一:

  • 使用-x flag

    执行脚本
    bash -x <scriptname>
    
  • 评论每一行...然后按行排列评论,看看您获得的结果

相关内容

  • 没有找到相关文章