"if"和"until"在 bash 脚本中给出不同的结果



为什么我得到的结果会根据我有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语句说"如果条件为真,则执行以下命令(只要条件为,就继续执行它)"。

If 是

分支运算符,till 是循环运算符(循环直到满足条件)。在您的情况下,不满足条件(12 不小于或等于 8),因此它将无限期地循环回显有关 a 和 b 值的不一致信息。

你的 if 也是错误的,因为它会在 a <= b 时回显"它不小于使用 if",而当它 a> b 时什么也不做。

相关内容

  • 没有找到相关文章

最新更新