为什么我会得到不同的结果,具体取决于我是否有until
语句或if
语句?
# compare dates
a=12
b=8
if [ $a -le $b ]; then
echo "it is not less than using if"
fi
until [ $a -le $b ]
do
echo "it is less than using until !?!?!?"
done
if
语句失败,但until
语句永久打印,即使它们完全相同。为什么?
谢谢。这真的有助于我的理解。
答案 0 :(得分:4)
尽管它们是完全相同的条件
这是不正确的。 if
语句说“如果条件为 true ,则执行以下命令”。 until
语句说“如果条件为 false ,则执行以下命令(并且只要条件保持 false ,就继续执行)”。
您可能正在考虑while
声明。 while
语句说“如果条件为 true ,则执行以下命令(并且只要条件保持 true ,就继续执行)”。
答案 1 :(得分:0)
如果是分支运算符,则直到是循环运算符(循环运行直到满足条件)。在你的情况下,条件不满足(12不小于或等于8),因此它将无限循环地回显关于a和b的值的不一致信息。
你的if也是错的,因为当a< = b时它会回应“它不小于使用if”并且当a>时它什么都不做湾