我的代码是:
if [ "$server" == "a" ]; then
echo "apache"
fi
if [ "$server" == "t" ]
then
echo "tomcat"
else
echo "Entered"
fi
该值$server
是t
。 我所期望的价值tomcat
控制台上打印。 但Entered
印呢!
我很困惑这个问题。 无论是怎么来的if
和else
语句执行?
我的代码是:
if [ "$server" == "a" ]; then
echo "apache"
fi
if [ "$server" == "t" ]
then
echo "tomcat"
else
echo "Entered"
fi
该值$server
是t
。 我所期望的价值tomcat
控制台上打印。 但Entered
印呢!
我很困惑这个问题。 无论是怎么来的if
和else
语句执行?
else分支应该永远只能当执行if语句评估为假前。 有没有真正的任何例外情形规则,我所知道的。 有可能是别的东西腥在造成问题的bash的文件回事。
确保bash的是什么是执行脚本。 #!/bin/bash
应该是在第一线。
为了解决你的问题,做这样的事情:
把echo语句到每一个分支:
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
标志
bash -x <scriptname>
注释掉每行...然后在逐行评论,看看有什么结果你