为什么我得到的结果会根据我有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
语句将永远打印,即使它们是完全相同的条件。 为什么?
谢谢。 这将真正帮助我的理解。
即使它们是完全相同的条件
这是不正确的。if
语句说"如果条件为真,则执行以下命令"。until
语句说"如果条件为假,则执行以下命令(只要条件为假,就继续执行它)"。
您可能正在考虑while
声明。while
语句说"如果条件为真,则执行以下命令(只要条件为真,就继续执行它)"。
分支运算符,till 是循环运算符(循环直到满足条件)。在您的情况下,不满足条件(12 不小于或等于 8),因此它将无限期地循环回显有关 a 和 b 值的不一致信息。
你的 if 也是错误的,因为它会在 a <= b 时回显"它不小于使用 if",而当它 a> b 时什么也不做。