В моей задаче, похоже, что j
значение и i
значение достигают 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
.