bash shell while循环超出了条件表达式

bash shell while循环超出了条件表达式

在我的问题中,看起来像jvalue 和ivaluereach 6;哪里i应该只跑到5.有人可以解释一下吗?

i=0;
j=0;
echo "values of $i and $j" > debug.txt;
while [ $j -le 5 ]
do
    j=expr $j + 1
    i=expr $i + 1
    echo "values of $i and $j" >> debug.txt
done;
cat debug.txt;

输出 :

value of i is  0 and j is  0
value of i is  1 and j is  1
value of i is  2 and j is  2
value of i is  3 and j is  3
value of i is  4 and j is  4
value of i is  5 and j is  5
value of i is  6 and j is  6

答案1

您的脚本不起作用的原因是您正在使用-le.这会导致您的脚本认为当它达到 5 时,它仍然会执行,因为它等于 5。将 更改-le-lt

相关内容